field_theory.ratfunc
⟷
Mathlib.FieldTheory.RatFunc
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -1030,6 +1030,14 @@ x.induction_on (λ p q hq, begin
exact inv_ne_zero (polynomial.leading_coeff_ne_zero.mpr q_div_ne_zero) },
end)
+lemma is_coprime_num_denom (x : ratfunc K) : is_coprime x.num x.denom :=
+begin
+ induction x using ratfunc.induction_on with p q hq,
+ rw [num_div, denom_div _ hq],
+ exact (is_coprime_mul_unit_left ((leading_coeff_ne_zero.2 $ right_div_gcd_ne_zero
+ hq).is_unit.inv.map C) _ _).2 (is_coprime_div_gcd_div_gcd hq),
+end
+
@[simp] lemma num_eq_zero_iff {x : ratfunc K} : num x = 0 ↔ x = 0 :=
⟨λ h, by rw [← num_div_denom x, h, ring_hom.map_zero, zero_div],
λ h, h.symm ▸ num_zero⟩
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
section
instead of omit/include
(#19133)
This hopefully closes [#4513](https://github.com/leanprover-community/mathlib4/issues/4513) (or at least mitigates it) and will settle in mathlib3.
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -98,8 +98,7 @@ open_locale non_zero_divisors polynomial
universes u v
-variables (K : Type u) [hring : comm_ring K] [hdomain : is_domain K]
-include hring
+variable (K : Type u)
/-- `ratfunc K` is `K(x)`, the field of rational functions over `K`.
@@ -107,12 +106,15 @@ The inclusion of polynomials into `ratfunc` is `algebra_map K[X] (ratfunc K)`,
the maps between `ratfunc K` and another field of fractions of `K[X]`,
especially `fraction_ring K[X]`, are given by `is_localization.algebra_equiv`.
-/
-structure ratfunc : Type u := of_fraction_ring ::
+structure ratfunc [comm_ring K] : Type u := of_fraction_ring ::
(to_fraction_ring : fraction_ring K[X])
namespace ratfunc
-variables {K}
+section comm_ring
+
+variable {K}
+variable [comm_ring K]
section rec
@@ -159,7 +161,17 @@ begin
exact localization.lift_on_mk _ _ _ _
end
-include hdomain
+lemma lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ (p q : K[X]), P}
+ (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)
+ ⦃p q p' q' : K[X]⦄ (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') :
+ f p q = f p' q' :=
+calc f p q = f (q' * p) (q' * q) : (H hq hq').symm
+ ... = f (q * p') (q * q') : by rw [h, mul_comm q']
+ ... = f p' q' : H hq' hq
+
+section is_domain
+
+variable [is_domain K]
/-- `ratfunc.mk (p q : K[X])` is `p / q` as a rational function.
@@ -221,16 +233,6 @@ begin
set_like.coe_mk] }
end
-omit hdomain
-lemma lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ (p q : K[X]), P}
- (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)
- ⦃p q p' q' : K[X]⦄ (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') :
- f p q = f p' q' :=
-calc f p q = f (q' * p) (q' * q) : (H hq hq').symm
- ... = f (q * p') (q * q') : by rw [h, mul_comm q']
- ... = f p' q' : H hq' hq
-include hdomain
-
/-- Non-dependent recursion principle for `ratfunc K`: if `f p q : P` for all `p q`,
such that `f (a * p) (a * q) = f p q`, then we can find a value of `P`
for all elements of `ratfunc K` by setting `lift_on' (p / q) f _ = f p q`.
@@ -265,6 +267,8 @@ See also `induction_on`, which is a recursion principle defined in terms of `alg
(λ ⟨p, q⟩, by simpa only [mk_coe_def, localization.mk_eq_mk'] using f p q
(mem_non_zero_divisors_iff_ne_zero.mp q.2))
+end is_domain
+
end rec
section field
@@ -315,7 +319,9 @@ lemma of_fraction_ring_mul (p q : fraction_ring K[X]) :
of_fraction_ring (p * q) = of_fraction_ring p * of_fraction_ring q :=
by unfold has_mul.mul ratfunc.mul
-include hdomain
+section is_domain
+
+variable [is_domain K]
/-- Division of rational functions. -/
@[irreducible] protected def div : ratfunc K → ratfunc K → ratfunc K
@@ -339,8 +345,9 @@ lemma mul_inv_cancel : ∀ {p : ratfunc K} (hp : p ≠ 0), p * p⁻¹ = 1
by simpa only [← of_fraction_ring_inv, ← of_fraction_ring_mul, ← of_fraction_ring_one]
using _root_.mul_inv_cancel this
+end is_domain
+
section has_smul
-omit hdomain
variables {R : Type*}
@@ -372,10 +379,11 @@ begin
{ simp only }
end
-include hdomain
+section is_domain
+
+variable [is_domain K]
variables [monoid R] [distrib_mul_action R K[X]]
-variables [htower : is_scalar_tower R K[X] K[X]]
-include htower
+variables [is_scalar_tower R K[X] K[X]]
lemma mk_smul (c : R) (p q : K[X]) :
ratfunc.mk (c • p) q = c • ratfunc.mk p q :=
@@ -389,12 +397,12 @@ end
instance : is_scalar_tower R K[X] (ratfunc K) :=
⟨λ c p q, q.induction_on' (λ q r _, by rw [← mk_smul, smul_assoc, mk_smul, mk_smul])⟩
+end is_domain
+
end has_smul
variables (K)
-omit hdomain
-
instance [subsingleton K] : subsingleton (ratfunc K) :=
to_fraction_ring_injective.subsingleton
@@ -415,8 +423,9 @@ This is an auxiliary definition; `simp`-normal form is `is_localization.alg_equi
map_add' := λ ⟨_⟩ ⟨_⟩, by simp [←of_fraction_ring_add],
map_mul' := λ ⟨_⟩ ⟨_⟩, by simp [←of_fraction_ring_mul] }
-omit hring
+end field
+section tactic_interlude -- pre-porting note: should comm_ring be disabled here?
/-- Solve equations for `ratfunc K` by working in `fraction_ring K[X]`. -/
meta def frac_tac : tactic unit :=
`[repeat { rintro (⟨⟩ : ratfunc _) },
@@ -438,8 +447,8 @@ meta def smul_tac : tactic unit :=
localization.mk_zero, localization.add_mk_self, localization.neg_mk,
of_fraction_ring_zero, ← of_fraction_ring_add, ← of_fraction_ring_neg]]
-include hring
-
+end tactic_interlude
+variable (K)
instance : comm_ring (ratfunc K) :=
{ add := (+),
add_assoc := by frac_tac,
@@ -473,7 +482,6 @@ variables {K}
section lift_hom
variables {G₀ L R S F : Type*} [comm_group_with_zero G₀] [field L] [comm_ring R] [comm_ring S]
-omit hring
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
@@ -636,10 +644,10 @@ lift_monoid_with_zero_hom_injective _ hφ
end lift_hom
-variables (K)
-include hdomain
+variable (K)
-instance : field (ratfunc K) :=
+instance [is_domain K] : field (ratfunc K) :=
+by exact
{ inv := has_inv.inv,
inv_zero := by frac_tac,
div := (/),
@@ -649,13 +657,12 @@ instance : field (ratfunc K) :=
.. ratfunc.comm_ring K,
.. ratfunc.nontrivial K }
-end field
-
section is_fraction_ring
/-! ### `ratfunc` as field of fractions of `polynomial` -/
-include hdomain
+section is_domain
+variable [is_domain K]
instance (R : Type*) [comm_semiring R] [algebra R K[X]] :
algebra R (ratfunc K) :=
@@ -803,10 +810,6 @@ end lift_alg_hom
variables (K)
-omit hdomain
-
-include hdomain
-
/-- `ratfunc K` is the field of fractions of the polynomials over `K`. -/
instance : is_fraction_ring K[X] (ratfunc K) :=
{ map_units := λ y, by rw ← of_fraction_ring_algebra_map;
@@ -874,17 +877,21 @@ by simp only [localization.mk_eq_mk'_apply, of_fraction_ring_mk', is_localizatio
by { ext x,
simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, alg_equiv.coe_ring_equiv'] }
+end is_domain
+
end is_fraction_ring
+end comm_ring
+
+variable {K}
+
section num_denom
/-! ### Numerator and denominator -/
open gcd_monoid polynomial
-omit hring
-variables [hfield : field K]
-include hfield
+variables [field K]
/-- `ratfunc.num_denom` are numerator and denominator of a rational function over a field,
normalized such that the denominator is monic. -/
@@ -1159,7 +1166,8 @@ section eval
/-! ### Polynomial structure: `C`, `X`, `eval` -/
-include hdomain
+section domain
+variables [comm_ring K] [is_domain K]
/-- `ratfunc.C a` is the constant rational function `a`. -/
def C : K →+* ratfunc K :=
@@ -1181,9 +1189,11 @@ def X : ratfunc K := algebra_map K[X] (ratfunc K) polynomial.X
@[simp] lemma algebra_map_X :
algebra_map K[X] (ratfunc K) polynomial.X = X := rfl
-omit hring hdomain
-variables [hfield : field K]
-include hfield
+end domain
+
+section field
+
+variables [field K]
@[simp] lemma num_C (c : K) : num (C c) = polynomial.C c :=
num_algebra_map _
@@ -1274,14 +1284,14 @@ begin
apply num_denom_mul,
end
+end field
+
end eval
section int_degree
open polynomial
-omit hring
-
variables [field K]
/-- `int_degree x` is the degree of the rational function `x`, defined as the difference between
@@ -1365,7 +1375,6 @@ section laurent_series
open power_series laurent_series hahn_series
-omit hring
variables {F : Type u} [field F] (p q : F[X]) (f g : ratfunc F)
/-- The coercion `ratfunc F → laurent_series F` as bundled alg hom. -/
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -1250,7 +1250,7 @@ theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
/-- `ratfunc.num` is the numerator of a rational function,
normalized such that the denominator is monic. -/
def num (x : RatFunc K) : K[X] :=
- x.num_den.1
+ x.num_divInt_den.1
#align ratfunc.num RatFunc.num
-/
@@ -1311,7 +1311,7 @@ theorem num_div_dvd' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
/-- `ratfunc.denom` is the denominator of a rational function,
normalized such that it is monic. -/
def denom (x : RatFunc K) : K[X] :=
- x.num_den.2
+ x.num_divInt_den.2
#align ratfunc.denom RatFunc.denom
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -815,7 +815,7 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
intro h
refine' Localization.r_of_eq _
have := mul_eq_mul_of_div_eq_div _ _ _ _ h
- rwa [← map_mul, ← map_mul, hφ.eq_iff, mul_comm, mul_comm y_a] at this
+ rwa [← map_mul, ← map_mul, hφ.eq_iff, mul_comm, mul_comm y_a] at this
all_goals exact map_ne_zero_of_mem_nonZeroDivisors _ hφ (SetLike.coe_mem _)
· exact fun _ => rfl
· exact fun _ => rfl
@@ -1563,7 +1563,7 @@ theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y
x.num * y.den + x.den * y.num ≠ 0 := by
intro h_zero
have h := num_denom_add x y
- rw [h_zero, MulZeroClass.zero_mul] at h
+ rw [h_zero, MulZeroClass.zero_mul] at h
exact (mul_ne_zero (num_ne_zero hxy) (mul_ne_zero x.denom_ne_zero y.denom_ne_zero)) h
#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero RatFunc.num_mul_denom_add_denom_mul_num_ne_zero
-/
@@ -1744,7 +1744,7 @@ theorem eval_add {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
unfold eval
by_cases hxy : Polynomial.eval₂ f a (denom (x + y)) = 0
· have := Polynomial.eval₂_eq_zero_of_dvd_of_eval₂_eq_zero f a (denom_add_dvd x y) hxy
- rw [Polynomial.eval₂_mul] at this
+ rw [Polynomial.eval₂_mul] at this
cases mul_eq_zero.mp this <;> contradiction
rw [div_add_div _ _ hx hy, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
@@ -1767,7 +1767,7 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
unfold eval
by_cases hxy : Polynomial.eval₂ f a (denom (x * y)) = 0
· have := Polynomial.eval₂_eq_zero_of_dvd_of_eval₂_eq_zero f a (denom_mul_dvd x y) hxy
- rw [Polynomial.eval₂_mul] at this
+ rw [Polynomial.eval₂_mul] at this
cases mul_eq_zero.mp this <;> contradiction
rw [div_mul_div_comm, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -306,7 +306,7 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
-/
-/- ./././Mathport/Syntax/Translate/Command.lean:332:38: unsupported irreducible non-definition -/
+/- ./././Mathport/Syntax/Translate/Command.lean:335:38: unsupported irreducible non-definition -/
#print RatFunc.induction_on' /-
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -306,7 +306,7 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
-/
-/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
+/- ./././Mathport/Syntax/Translate/Command.lean:332:38: unsupported irreducible non-definition -/
#print RatFunc.induction_on' /-
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-/
-import Mathbin.RingTheory.EuclideanDomain
-import Mathbin.RingTheory.LaurentSeries
-import Mathbin.RingTheory.Localization.FractionRing
-import Mathbin.RingTheory.Polynomial.Content
+import RingTheory.EuclideanDomain
+import RingTheory.LaurentSeries
+import RingTheory.Localization.FractionRing
+import RingTheory.Polynomial.Content
#align_import field_theory.ratfunc from "leanprover-community/mathlib"@"bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6"
@@ -571,14 +571,14 @@ end Field
section TacticInterlude
-/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:337:4: warning: unsupported (TODO): `[tacs] -/
-- pre-porting note: should comm_ring be disabled here?
/-- Solve equations for `ratfunc K` by working in `fraction_ring K[X]`. -/
unsafe def frac_tac : tactic Unit :=
sorry
#align ratfunc.frac_tac ratfunc.frac_tac
-/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:337:4: warning: unsupported (TODO): `[tacs] -/
/-- Solve equations for `ratfunc K` by applying `ratfunc.induction_on`. -/
unsafe def smul_tac : tactic Unit :=
sorry
mathlib commit https://github.com/leanprover-community/mathlib/commit/001ffdc42920050657fd45bd2b8bfbec8eaaeb29
@@ -178,15 +178,15 @@ theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
-/
-#print RatFunc.lift_on_condition_of_lift_on'_condition /-
-theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X], P}
+#print RatFunc.liftOn_condition_of_liftOn'_condition /-
+theorem liftOn_condition_of_liftOn'_condition {P : Sort v} {f : ∀ p q : K[X], P}
(H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
(hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
calc
f p q = f (q' * p) (q' * q) := (H hq hq').symm
_ = f (q * p') (q * q') := by rw [h, mul_comm q']
_ = f p' q' := H hq' hq
-#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
+#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.liftOn_condition_of_liftOn'_condition
-/
section IsDomain
@@ -291,7 +291,7 @@ although many usages of `lift_on'` assume `f p 0 = f 0 1`.
protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X], P)
(H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
x.liftOn f fun p q p' q' hq hq' =>
- lift_on_condition_of_lift_on'_condition (@H) (nonZeroDivisors.ne_zero hq)
+ liftOn_condition_of_liftOn'_condition (@H) (nonZeroDivisors.ne_zero hq)
(nonZeroDivisors.ne_zero hq')
#align ratfunc.lift_on' RatFunc.liftOn'
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -875,7 +875,7 @@ instance [IsDomain K] : Field (RatFunc K) :=
run_tac
frac_tac
div := (· / ·)
- div_eq_mul_inv := by
+ div_eq_hMul_inv := by
run_tac
frac_tac
mul_inv_cancel := fun _ => mul_inv_cancel
@@ -1986,7 +1986,7 @@ theorem coe_neg : ((-f : RatFunc F) : LaurentSeries F) = -f :=
#print RatFunc.coe_mul /-
@[simp, norm_cast]
theorem coe_mul : ((f * g : RatFunc F) : LaurentSeries F) = f * g :=
- (coeAlgHom F).map_mul _ _
+ (coeAlgHom F).map_hMul _ _
#align ratfunc.coe_mul RatFunc.coe_mul
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.EuclideanDomain
import Mathbin.RingTheory.LaurentSeries
import Mathbin.RingTheory.Localization.FractionRing
import Mathbin.RingTheory.Polynomial.Content
+#align_import field_theory.ratfunc from "leanprover-community/mathlib"@"bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6"
+
/-!
# The field of rational functions
mathlib commit https://github.com/leanprover-community/mathlib/commit/f2ad3645af9effcdb587637dc28a6074edc813f9
@@ -1421,7 +1421,7 @@ theorem num_ne_zero {x : RatFunc K} (hx : x ≠ 0) : num x ≠ 0 :=
theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
x.num * q = p * x.den ↔ x = algebraMap _ _ p / algebraMap _ _ q :=
by
- rw [← (algebra_map_injective K).eq_iff, eq_div_iff (algebra_map_ne_zero hq)]
+ rw [← (algebraMap_injective K).eq_iff, eq_div_iff (algebra_map_ne_zero hq)]
conv_rhs => rw [← num_div_denom x]
rw [RingHom.map_mul, RingHom.map_mul, div_eq_mul_inv, mul_assoc, mul_comm (Inv.inv _), ←
mul_assoc, ← div_eq_mul_inv, div_eq_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -1392,6 +1392,7 @@ theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _
#align ratfunc.num_div_denom RatFunc.num_div_denom
-/
+#print RatFunc.isCoprime_num_denom /-
theorem isCoprime_num_denom (x : RatFunc K) : IsCoprime x.num x.den :=
by
induction' x using RatFunc.induction_on with p q hq
@@ -1401,6 +1402,7 @@ theorem isCoprime_num_denom (x : RatFunc K) : IsCoprime x.num x.den :=
((leading_coeff_ne_zero.2 <| right_div_gcd_ne_zero hq).IsUnit.inv.map C) _ _).2
(isCoprime_div_gcd_div_gcd hq)
#align ratfunc.is_coprime_num_denom RatFunc.isCoprime_num_denom
+-/
#print RatFunc.num_eq_zero_iff /-
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit 67237461d7cbf410706a6a06f4d40cbb594c32dc
+! leanprover-community/mathlib commit bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -1392,6 +1392,16 @@ theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _
#align ratfunc.num_div_denom RatFunc.num_div_denom
-/
+theorem isCoprime_num_denom (x : RatFunc K) : IsCoprime x.num x.den :=
+ by
+ induction' x using RatFunc.induction_on with p q hq
+ rw [num_div, denom_div _ hq]
+ exact
+ (isCoprime_mul_unit_left
+ ((leading_coeff_ne_zero.2 <| right_div_gcd_ne_zero hq).IsUnit.inv.map C) _ _).2
+ (isCoprime_div_gcd_div_gcd hq)
+#align ratfunc.is_coprime_num_denom RatFunc.isCoprime_num_denom
+
#print RatFunc.num_eq_zero_iff /-
@[simp]
theorem num_eq_zero_iff {x : RatFunc K} : num x = 0 ↔ x = 0 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -144,6 +144,7 @@ theorem toFractionRing_injective : Function.Injective (toFractionRing : _ → Fr
#align ratfunc.to_fraction_ring_injective RatFunc.toFractionRing_injective
-/
+#print RatFunc.liftOn /-
/-- Non-dependent recursion principle for `ratfunc K`:
To construct a term of `P : Sort*` out of `x : ratfunc K`,
it suffices to provide a constructor `f : Π (p q : K[X]), P`
@@ -168,7 +169,9 @@ protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X
(let ⟨⟨c, hc⟩, mul_eq⟩ := Localization.r_iff_exists.mp h
mul_cancel_left_coe_nonZeroDivisors.mp mul_eq)
#align ratfunc.lift_on RatFunc.liftOn
+-/
+#print RatFunc.liftOn_ofFractionRing_mk /-
theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ p q : K[X], P)
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
RatFunc.liftOn (of_fraction_ring (Localization.mk n d)) f @H = f n d :=
@@ -176,6 +179,7 @@ theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀
unfold RatFunc.liftOn
exact Localization.liftOn_mk _ _ _ _
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
+-/
#print RatFunc.lift_on_condition_of_lift_on'_condition /-
theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X], P}
@@ -205,9 +209,11 @@ protected irreducible_def mk (p q : K[X]) : RatFunc K :=
#align ratfunc.mk RatFunc.mk
-/
+#print RatFunc.mk_eq_div' /-
theorem mk_eq_div' (p q : K[X]) :
RatFunc.mk p q = ofFractionRing (algebraMap _ _ p / algebraMap _ _ q) := by unfold RatFunc.mk
#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'
+-/
#print RatFunc.mk_zero /-
theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
@@ -215,31 +221,41 @@ theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
#align ratfunc.mk_zero RatFunc.mk_zero
-/
+#print RatFunc.mk_coe_def /-
theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p q) := by
simp only [mk_eq_div', ← Localization.mk_eq_mk', FractionRing.mk_eq_div]
#align ratfunc.mk_coe_def RatFunc.mk_coe_def
+-/
+#print RatFunc.mk_def_of_mem /-
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p ⟨q, hq⟩) := by
simp only [← mk_coe_def, SetLike.coe_mk]
#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
+-/
+#print RatFunc.mk_def_of_ne /-
theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
ofFractionRing (IsLocalization.mk' _ p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
mk_def_of_mem p _
#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_ne
+-/
+#print RatFunc.mk_eq_localization_mk /-
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
by rw [mk_def_of_ne, Localization.mk_eq_mk']
#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
+-/
+#print RatFunc.mk_one' /-
theorem mk_one' (p : K[X]) : RatFunc.mk p 1 = ofFractionRing (algebraMap _ _ p) := by
rw [← IsLocalization.mk'_one (FractionRing K[X]) p, ← mk_coe_def, Submonoid.coe_one]
#align ratfunc.mk_one' RatFunc.mk_one'
+-/
#print RatFunc.mk_eq_mk /-
theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
@@ -250,6 +266,7 @@ theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
-/
+#print RatFunc.liftOn_mk /-
theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
@@ -264,6 +281,7 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p,
simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, lift_on_of_fraction_ring_mk,
SetLike.coe_mk]
#align ratfunc.lift_on_mk RatFunc.liftOn_mk
+-/
#print RatFunc.liftOn' /-
/-- Non-dependent recursion principle for `ratfunc K`: if `f p q : P` for all `p q`,
@@ -291,7 +309,7 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
-/
-/- ./././Mathport/Syntax/Translate/Command.lean:323:38: unsupported irreducible non-definition -/
+/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
#print RatFunc.induction_on' /-
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
@@ -357,9 +375,11 @@ protected irreducible_def sub : RatFunc K → RatFunc K → RatFunc K
instance : Sub (RatFunc K) :=
⟨RatFunc.sub⟩
+#print RatFunc.ofFractionRing_sub /-
theorem ofFractionRing_sub (p q : FractionRing K[X]) :
ofFractionRing (p - q) = ofFractionRing p - ofFractionRing q := by unfold Sub.sub RatFunc.sub
#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_sub
+-/
#print RatFunc.neg /-
/-- Additive inverse of a rational function. -/
@@ -422,9 +442,11 @@ protected irreducible_def div : RatFunc K → RatFunc K → RatFunc K
instance : Div (RatFunc K) :=
⟨RatFunc.div⟩
+#print RatFunc.ofFractionRing_div /-
theorem ofFractionRing_div (p q : FractionRing K[X]) :
ofFractionRing (p / q) = ofFractionRing p / ofFractionRing q := by unfold Div.div RatFunc.div
#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_div
+-/
#print RatFunc.inv /-
/-- Multiplicative inverse of a rational function. -/
@@ -436,9 +458,11 @@ protected irreducible_def inv : RatFunc K → RatFunc K
instance : Inv (RatFunc K) :=
⟨RatFunc.inv⟩
+#print RatFunc.ofFractionRing_inv /-
theorem ofFractionRing_inv (p : FractionRing K[X]) : ofFractionRing p⁻¹ = (ofFractionRing p)⁻¹ := by
unfold Inv.inv RatFunc.inv
#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_inv
+-/
#print RatFunc.mul_inv_cancel /-
-- Auxiliary lemma for the `field` instance
@@ -468,14 +492,19 @@ protected irreducible_def smul [SMul R (FractionRing K[X])] : R → RatFunc K
instance [SMul R (FractionRing K[X])] : SMul R (RatFunc K) :=
⟨RatFunc.smul⟩
+#print RatFunc.ofFractionRing_smul /-
theorem ofFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : FractionRing K[X]) :
ofFractionRing (c • p) = c • ofFractionRing p := by unfold SMul.smul RatFunc.smul
#align ratfunc.of_fraction_ring_smul RatFunc.ofFractionRing_smul
+-/
+#print RatFunc.toFractionRing_smul /-
theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : RatFunc K) :
toFractionRing (c • p) = c • toFractionRing p := by cases p; rw [← of_fraction_ring_smul]
#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smul
+-/
+#print RatFunc.smul_eq_C_smul /-
theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x :=
by
cases x
@@ -485,6 +514,7 @@ theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x
Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_C_mul]
· simp only
#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smul
+-/
section IsDomain
@@ -494,6 +524,7 @@ variable [Monoid R] [DistribMulAction R K[X]]
variable [IsScalarTower R K[X] K[X]]
+#print RatFunc.mk_smul /-
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q :=
by
by_cases hq : q = 0
@@ -502,6 +533,7 @@ theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk
rw [mk_eq_localization_mk _ hq, mk_eq_localization_mk _ hq, ← Localization.smul_mk, ←
of_fraction_ring_smul]
#align ratfunc.mk_smul RatFunc.mk_smul
+-/
instance : IsScalarTower R K[X] (RatFunc K) :=
⟨fun c p q => q.inductionOn' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
@@ -521,6 +553,7 @@ instance : Inhabited (RatFunc K) :=
instance [Nontrivial K] : Nontrivial (RatFunc K) :=
ofFractionRing_injective.Nontrivial
+#print RatFunc.toFractionRingRingEquiv /-
/-- `ratfunc K` is isomorphic to the field of fractions of `K[X]`, as rings.
This is an auxiliary definition; `simp`-normal form is `is_localization.alg_equiv`.
@@ -535,6 +568,7 @@ def toFractionRingRingEquiv : RatFunc K ≃+* FractionRing K[X]
map_add' := fun ⟨_⟩ ⟨_⟩ => by simp [← of_fraction_ring_add]
map_mul' := fun ⟨_⟩ ⟨_⟩ => by simp [← of_fraction_ring_mul]
#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquiv
+-/
end Field
@@ -642,6 +676,7 @@ section LiftHom
variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
+#print RatFunc.map /-
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -675,7 +710,9 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
· rfl
· rfl
#align ratfunc.map RatFunc.map
+-/
+#print RatFunc.map_apply_ofFractionRing_mk /-
theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
(hφ : R[X]⁰ ≤ S[X]⁰.comap φ) (n : R[X]) (d : R[X]⁰) :
map φ hφ (ofFractionRing (Localization.mk n d)) =
@@ -684,7 +721,9 @@ theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
convert lift_on_of_fraction_ring_mk _ _ _ _
rw [dif_pos]
#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mk
+-/
+#print RatFunc.map_injective /-
theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ)
(hf : Function.Injective φ) : Function.Injective (map φ hφ) :=
by
@@ -696,7 +735,9 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
· rfl
· rfl
#align ratfunc.map_injective RatFunc.map_injective
+-/
+#print RatFunc.mapRingHom /-
/-- Lift a ring homomorphism that maps polynomials `φ : R[X] →+* S[X]`
to a `ratfunc R →+* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -719,12 +760,16 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
· rfl
· rfl }
#align ratfunc.map_ring_hom RatFunc.mapRingHom
+-/
+#print RatFunc.coe_mapRingHom_eq_coe_map /-
theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) :
(mapRingHom φ hφ : RatFunc R → RatFunc S) = map φ hφ :=
rfl
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
+-/
+#print RatFunc.liftMonoidWithZeroHom /-
-- TODO: Generalize to `fun_like` classes,
/-- Lift an monoid with zero homomorphism `R[X] →*₀ G₀` to a `ratfunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -753,13 +798,17 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
rw [← of_fraction_ring_zero, ← Localization.mk_zero (1 : R[X]⁰), lift_on_of_fraction_ring_mk]
simp only [map_zero, zero_div]
#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
+-/
+#print RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk /-
theorem liftMonoidWithZeroHom_apply_ofFractionRing_mk (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ)
(n : R[X]) (d : R[X]⁰) :
liftMonoidWithZeroHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftOn_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk
+-/
+#print RatFunc.liftMonoidWithZeroHom_injective /-
theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ G₀⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftMonoidWithZeroHom φ hφ') :=
@@ -774,7 +823,9 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
· exact fun _ => rfl
· exact fun _ => rfl
#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injective
+-/
+#print RatFunc.liftRingHom /-
/-- Lift an injective ring homomorphism `R[X] →+* L` to a `ratfunc R →+* L`
by mapping both the numerator and denominator and quotienting them. -/
def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc R →+* L :=
@@ -796,17 +847,22 @@ def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc
· rfl
· rfl }
#align ratfunc.lift_ring_hom RatFunc.liftRingHom
+-/
+#print RatFunc.liftRingHom_apply_ofFractionRing_mk /-
theorem liftRingHom_apply_ofFractionRing_mk (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) (n : R[X])
(d : R[X]⁰) : liftRingHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mk
+-/
+#print RatFunc.liftRingHom_injective /-
theorem liftRingHom_injective [Nontrivial R] (φ : R[X] →+* L) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftRingHom φ hφ') :=
liftMonoidWithZeroHom_injective _ hφ
#align ratfunc.lift_ring_hom_injective RatFunc.liftRingHom_injective
+-/
end LiftHom
@@ -853,20 +909,27 @@ instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
variable {K}
+#print RatFunc.mk_one /-
theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
#align ratfunc.mk_one RatFunc.mk_one
+-/
+#print RatFunc.ofFractionRing_algebraMap /-
theorem ofFractionRing_algebraMap (x : K[X]) :
ofFractionRing (algebraMap _ (FractionRing K[X]) x) = algebraMap _ _ x := by
rw [← mk_one, mk_one']
#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMap
+-/
+#print RatFunc.mk_eq_div /-
@[simp]
theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap _ _ q := by
simp only [mk_eq_div', of_fraction_ring_div, of_fraction_ring_algebra_map]
#align ratfunc.mk_eq_div RatFunc.mk_eq_div
+-/
+#print RatFunc.div_smul /-
@[simp]
theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X] K[X]] (c : R)
(p q : K[X]) :
@@ -874,12 +937,16 @@ theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X]
c • (algebraMap _ _ p / algebraMap _ _ q) :=
by rw [← mk_eq_div, mk_smul, mk_eq_div]
#align ratfunc.div_smul RatFunc.div_smul
+-/
+#print RatFunc.algebraMap_apply /-
theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 := by
rw [← mk_eq_div]; rfl
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
+-/
+#print RatFunc.map_apply_div_ne_zero /-
theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) = algebraMap _ _ (φ p) / algebraMap _ _ (φ q) :=
@@ -888,7 +955,9 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
simp only [← mk_eq_div, mk_eq_localization_mk _ hq, map_apply_of_fraction_ring_mk,
mk_eq_localization_mk _ hq', SetLike.coe_mk]
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
+-/
+#print RatFunc.map_apply_div /-
@[simp]
theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) :
@@ -901,7 +970,9 @@ theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHo
exact one_ne_zero
exact map_apply_div_ne_zero _ _ _ _ hq
#align ratfunc.map_apply_div RatFunc.map_apply_div
+-/
+#print RatFunc.liftMonoidWithZeroHom_apply_div /-
@[simp]
theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
(φ : MonoidWithZeroHom K[X] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (p q : K[X]) :
@@ -912,43 +983,55 @@ theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
simpa only [← mk_eq_div, mk_eq_localization_mk _ hq,
lift_monoid_with_zero_hom_apply_of_fraction_ring_mk]
#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_div
+-/
+#print RatFunc.liftRingHom_apply_div /-
@[simp]
theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
liftMonoidWithZeroHom_apply_div _ _ _ _
#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_div
+-/
variable (K)
+#print RatFunc.ofFractionRing_comp_algebraMap /-
theorem ofFractionRing_comp_algebraMap :
ofFractionRing ∘ algebraMap K[X] (FractionRing K[X]) = algebraMap _ _ :=
funext ofFractionRing_algebraMap
#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMap
+-/
+#print RatFunc.algebraMap_injective /-
theorem algebraMap_injective : Function.Injective (algebraMap K[X] (RatFunc K)) :=
by
rw [← of_fraction_ring_comp_algebra_map]
exact of_fraction_ring_injective.comp (IsFractionRing.injective _ _)
#align ratfunc.algebra_map_injective RatFunc.algebraMap_injective
+-/
+#print RatFunc.algebraMap_eq_zero_iff /-
@[simp]
theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0 ↔ x = 0 :=
⟨(injective_iff_map_eq_zero _).mp (algebraMap_injective K) _, fun hx => by
rw [hx, RingHom.map_zero]⟩
#align ratfunc.algebra_map_eq_zero_iff RatFunc.algebraMap_eq_zero_iff
+-/
variable {K}
+#print RatFunc.algebraMap_ne_zero /-
theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (RatFunc K) x ≠ 0 :=
mt (algebraMap_eq_zero_iff K).mp hx
#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zero
+-/
section LiftAlgHom
variable {L R S : Type _} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [Algebra S K[X]]
[Algebra S L] [Algebra S R[X]] (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
+#print RatFunc.mapAlgHom /-
/-- Lift an algebra homomorphism that maps polynomials `φ : K[X] →ₐ[S] R[X]`
to a `ratfunc K →ₐ[S] ratfunc R`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -959,12 +1042,16 @@ def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
simp_rw [RingHom.toFun_eq_coe, coe_map_ring_hom_eq_coe_map, algebraMap_apply r, map_apply_div,
map_one, AlgHom.commutes] }
#align ratfunc.map_alg_hom RatFunc.mapAlgHom
+-/
+#print RatFunc.coe_mapAlgHom_eq_coe_map /-
theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
(mapAlgHom φ hφ : RatFunc K → RatFunc R) = map φ hφ :=
rfl
#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_map
+-/
+#print RatFunc.liftAlgHom /-
/-- Lift an injective algebra homomorphism `K[X] →ₐ[S] L` to a `ratfunc K →ₐ[S] L`
by mapping both the numerator and denominator and quotienting them. -/
def liftAlgHom : RatFunc K →ₐ[S] L :=
@@ -973,23 +1060,30 @@ def liftAlgHom : RatFunc K →ₐ[S] L :=
simp_rw [RingHom.toFun_eq_coe, AlgHom.toRingHom_eq_coe, algebraMap_apply r,
lift_ring_hom_apply_div, AlgHom.coe_toRingHom, map_one, div_one, AlgHom.commutes] }
#align ratfunc.lift_alg_hom RatFunc.liftAlgHom
+-/
+#print RatFunc.liftAlgHom_apply_ofFractionRing_mk /-
theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
liftAlgHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mk
+-/
+#print RatFunc.liftAlgHom_injective /-
theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective φ)
(hφ' : K[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftAlgHom φ hφ') :=
liftMonoidWithZeroHom_injective _ hφ
#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injective
+-/
+#print RatFunc.liftAlgHom_apply_div /-
@[simp]
theorem liftAlgHom_apply_div (p q : K[X]) :
liftAlgHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
liftMonoidWithZeroHom_apply_div _ _ _ _
#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_div
+-/
end LiftAlgHom
@@ -1012,6 +1106,7 @@ instance : IsFractionRing K[X] (RatFunc K)
variable {K}
+#print RatFunc.liftOn_div /-
@[simp]
theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
@@ -1020,7 +1115,9 @@ theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
(algebraMap _ (RatFunc K) p / algebraMap _ _ q).liftOn f @H = f p q := by
rw [← mk_eq_div, lift_on_mk _ _ f f0 @H']
#align ratfunc.lift_on_div RatFunc.liftOn_div
+-/
+#print RatFunc.liftOn'_div /-
@[simp]
theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1) (H) :
(algebraMap _ (RatFunc K) p / algebraMap _ _ q).liftOn' f @H = f p q :=
@@ -1028,7 +1125,9 @@ theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀
rw [RatFunc.liftOn', lift_on_div _ _ _ f0]
exact lift_on_condition_of_lift_on'_condition @H
#align ratfunc.lift_on'_div RatFunc.liftOn'_div
+-/
+#print RatFunc.induction_on /-
/-- Induction principle for `ratfunc K`: if `f p q : P (p / q)` for all `p q : K[X]`,
then `P` holds on all elements of `ratfunc K`.
@@ -1038,12 +1137,16 @@ protected theorem induction_on {P : RatFunc K → Prop} (x : RatFunc K)
(f : ∀ (p q : K[X]) (hq : q ≠ 0), P (algebraMap _ (RatFunc K) p / algebraMap _ _ q)) : P x :=
x.inductionOn' fun p q hq => by simpa using f p q hq
#align ratfunc.induction_on RatFunc.induction_on
+-/
+#print RatFunc.ofFractionRing_mk' /-
theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
ofFractionRing (IsLocalization.mk' _ x y) = IsLocalization.mk' (RatFunc K) x y := by
rw [IsFractionRing.mk'_eq_div, IsFractionRing.mk'_eq_div, ← mk_eq_div', ← mk_eq_div]
#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'
+-/
+#print RatFunc.ofFractionRing_eq /-
@[simp]
theorem ofFractionRing_eq :
(ofFractionRing : FractionRing K[X] → RatFunc K) = IsLocalization.algEquiv K[X]⁰ _ _ :=
@@ -1053,7 +1156,9 @@ theorem ofFractionRing_eq :
RingEquiv.toFun_eq_coe, Localization.mk_eq_mk'_apply, IsLocalization.map_mk',
of_fraction_ring_mk', RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
+-/
+#print RatFunc.toFractionRing_eq /-
@[simp]
theorem toFractionRing_eq :
(toFractionRing : RatFunc K → FractionRing K[X]) = IsLocalization.algEquiv K[X]⁰ _ _ :=
@@ -1063,7 +1168,9 @@ theorem toFractionRing_eq :
RingEquiv.toFun_eq_coe, IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
+-/
+#print RatFunc.toFractionRingRingEquiv_symm_eq /-
@[simp]
theorem toFractionRingRingEquiv_symm_eq :
(toFractionRingRingEquiv K).symm = (IsLocalization.algEquiv K[X]⁰ _ _).toRingEquiv :=
@@ -1071,6 +1178,7 @@ theorem toFractionRingRingEquiv_symm_eq :
ext x
simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, AlgEquiv.coe_ringEquiv']
#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eq
+-/
end IsDomain
@@ -1127,6 +1235,7 @@ def numDenom (x : RatFunc K) : K[X] × K[X] :=
#align ratfunc.num_denom RatFunc.numDenom
-/
+#print RatFunc.numDenom_div /-
@[simp]
theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
numDenom (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1138,6 +1247,7 @@ theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
rw [if_pos rfl, if_neg (one_ne_zero' K[X])]
simp
#align ratfunc.num_denom_div RatFunc.numDenom_div
+-/
#print RatFunc.num /-
/-- `ratfunc.num` is the numerator of a rational function,
@@ -1158,6 +1268,7 @@ theorem num_zero : num (0 : RatFunc K) = 0 := by convert num_div' (0 : K[X]) one
#align ratfunc.num_zero RatFunc.num_zero
-/
+#print RatFunc.num_div /-
@[simp]
theorem num_div (p q : K[X]) :
num (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1167,6 +1278,7 @@ theorem num_div (p q : K[X]) :
· simp [hq]
· exact num_div' p hq
#align ratfunc.num_div RatFunc.num_div
+-/
#print RatFunc.num_one /-
@[simp]
@@ -1174,10 +1286,13 @@ theorem num_one : num (1 : RatFunc K) = 1 := by convert num_div (1 : K[X]) 1 <;>
#align ratfunc.num_one RatFunc.num_one
-/
+#print RatFunc.num_algebraMap /-
@[simp]
theorem num_algebraMap (p : K[X]) : num (algebraMap _ _ p) = p := by convert num_div p 1 <;> simp
#align ratfunc.num_algebra_map RatFunc.num_algebraMap
+-/
+#print RatFunc.num_div_dvd /-
theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) ∣ p :=
by
@@ -1185,12 +1300,15 @@ theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_left p q)
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.num_div_dvd RatFunc.num_div_dvd
+-/
+#print RatFunc.num_div_dvd' /-
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@[simp]
theorem num_div_dvd' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) ∣ p := by simpa using num_div_dvd p hq
#align ratfunc.num_div_dvd' RatFunc.num_div_dvd'
+-/
#print RatFunc.denom /-
/-- `ratfunc.denom` is the denominator of a rational function,
@@ -1200,12 +1318,14 @@ def denom (x : RatFunc K) : K[X] :=
#align ratfunc.denom RatFunc.denom
-/
+#print RatFunc.denom_div /-
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
denom (algebraMap _ _ p / algebraMap _ _ q) =
Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) :=
by rw [denom, num_denom_div _ hq]
#align ratfunc.denom_div RatFunc.denom_div
+-/
#print RatFunc.monic_denom /-
theorem monic_denom (x : RatFunc K) : (denom x).Monic :=
@@ -1235,11 +1355,14 @@ theorem denom_one : denom (1 : RatFunc K) = 1 := by
#align ratfunc.denom_one RatFunc.denom_one
-/
+#print RatFunc.denom_algebraMap /-
@[simp]
theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (RatFunc K) p) = 1 := by
convert denom_div p one_ne_zero <;> simp
#align ratfunc.denom_algebra_map RatFunc.denom_algebraMap
+-/
+#print RatFunc.denom_div_dvd /-
@[simp]
theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q) ∣ q :=
by
@@ -1249,7 +1372,9 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_right p q)
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.denom_div_dvd RatFunc.denom_div_dvd
+-/
+#print RatFunc.num_div_denom /-
@[simp]
theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x :=
x.inductionOn fun p q hq =>
@@ -1265,6 +1390,7 @@ theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _
· refine' algebra_map_ne_zero (mt polynomial.C_eq_zero.mp _)
exact inv_ne_zero (polynomial.leading_coeff_ne_zero.mpr q_div_ne_zero)
#align ratfunc.num_div_denom RatFunc.num_div_denom
+-/
#print RatFunc.num_eq_zero_iff /-
@[simp]
@@ -1279,6 +1405,7 @@ theorem num_ne_zero {x : RatFunc K} (hx : x ≠ 0) : num x ≠ 0 :=
#align ratfunc.num_ne_zero RatFunc.num_ne_zero
-/
+#print RatFunc.num_mul_eq_mul_denom_iff /-
theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
x.num * q = p * x.den ↔ x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1288,6 +1415,7 @@ theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
mul_assoc, ← div_eq_mul_inv, div_eq_iff]
exact algebra_map_ne_zero (denom_ne_zero x)
#align ratfunc.num_mul_eq_mul_denom_iff RatFunc.num_mul_eq_mul_denom_iff
+-/
#print RatFunc.num_denom_add /-
theorem num_denom_add (x y : RatFunc K) :
@@ -1317,6 +1445,7 @@ theorem num_denom_mul (x y : RatFunc K) :
#align ratfunc.num_denom_mul RatFunc.num_denom_mul
-/
+#print RatFunc.num_dvd /-
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
num x ∣ p ↔ ∃ (q : K[X]) (hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1330,7 +1459,9 @@ theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
· rintro ⟨q, hq, rfl⟩
exact num_div_dvd p hq
#align ratfunc.num_dvd RatFunc.num_dvd
+-/
+#print RatFunc.denom_dvd /-
theorem denom_dvd {x : RatFunc K} {q : K[X]} (hq : q ≠ 0) :
denom x ∣ q ↔ ∃ p : K[X], x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1343,6 +1474,7 @@ theorem denom_dvd {x : RatFunc K} {q : K[X]} (hq : q ≠ 0) :
· rintro ⟨p, rfl⟩
exact denom_div_dvd p q
#align ratfunc.denom_dvd RatFunc.denom_dvd
+-/
#print RatFunc.num_mul_dvd /-
theorem num_mul_dvd (x y : RatFunc K) : num (x * y) ∣ num x * num y :=
@@ -1378,11 +1510,14 @@ theorem denom_add_dvd (x y : RatFunc K) : denom (x + y) ∣ denom x * denom y :=
#align ratfunc.denom_add_dvd RatFunc.denom_add_dvd
-/
+#print RatFunc.map_denom_ne_zero /-
theorem map_denom_ne_zero {L F : Type _} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
(hφ : Function.Injective φ) (f : RatFunc K) : φ f.den ≠ 0 := fun H =>
(denom_ne_zero f) ((map_eq_zero_iff φ hφ).mp H)
#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
+-/
+#print RatFunc.map_apply /-
theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
(hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
map φ hφ f = algebraMap _ _ (φ f.num) / algebraMap _ _ (φ f.den) :=
@@ -1390,22 +1525,29 @@ theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X
rw [← num_div_denom f, map_apply_div_ne_zero, num_div_denom f]
exact denom_ne_zero _
#align ratfunc.map_apply RatFunc.map_apply
+-/
+#print RatFunc.liftMonoidWithZeroHom_apply /-
theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X] →*₀ L)
(hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) : liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.den :=
by rw [← num_div_denom f, lift_monoid_with_zero_hom_apply_div, num_div_denom]
#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_apply
+-/
+#print RatFunc.liftRingHom_apply /-
theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.den :=
liftMonoidWithZeroHom_apply _ _ _
#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
+-/
+#print RatFunc.liftAlgHom_apply /-
theorem liftAlgHom_apply {L S : Type _} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
(φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftAlgHom φ hφ f = φ f.num / φ f.den :=
liftMonoidWithZeroHom_apply _ _ _
#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_apply
+-/
#print RatFunc.num_mul_denom_add_denom_mul_num_ne_zero /-
theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y ≠ 0) :
@@ -1428,29 +1570,39 @@ section Domain
variable [CommRing K] [IsDomain K]
+#print RatFunc.C /-
/-- `ratfunc.C a` is the constant rational function `a`. -/
def C : K →+* RatFunc K :=
algebraMap _ _
#align ratfunc.C RatFunc.C
+-/
+#print RatFunc.algebraMap_eq_C /-
@[simp]
theorem algebraMap_eq_C : algebraMap K (RatFunc K) = C :=
rfl
#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_C
+-/
+#print RatFunc.algebraMap_C /-
@[simp]
theorem algebraMap_C (a : K) : algebraMap K[X] (RatFunc K) (Polynomial.C a) = C a :=
rfl
#align ratfunc.algebra_map_C RatFunc.algebraMap_C
+-/
+#print RatFunc.algebraMap_comp_C /-
@[simp]
theorem algebraMap_comp_C : (algebraMap K[X] (RatFunc K)).comp Polynomial.C = C :=
rfl
#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_C
+-/
+#print RatFunc.smul_eq_C_mul /-
theorem smul_eq_C_mul (r : K) (x : RatFunc K) : r • x = C r * x := by
rw [Algebra.smul_def, algebra_map_eq_C]
#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mul
+-/
#print RatFunc.X /-
/-- `ratfunc.X` is the polynomial variable (aka indeterminate). -/
@@ -1459,10 +1611,12 @@ def X : RatFunc K :=
#align ratfunc.X RatFunc.X
-/
+#print RatFunc.algebraMap_X /-
@[simp]
theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
rfl
#align ratfunc.algebra_map_X RatFunc.algebraMap_X
+-/
end Domain
@@ -1470,15 +1624,19 @@ section Field
variable [Field K]
+#print RatFunc.num_C /-
@[simp]
theorem num_C (c : K) : num (C c) = Polynomial.C c :=
num_algebraMap _
#align ratfunc.num_C RatFunc.num_C
+-/
+#print RatFunc.denom_C /-
@[simp]
theorem denom_C (c : K) : denom (C c) = 1 :=
denom_algebraMap _
#align ratfunc.denom_C RatFunc.denom_C
+-/
#print RatFunc.num_X /-
@[simp]
@@ -1516,39 +1674,54 @@ def eval (f : K →+* L) (a : L) (p : RatFunc K) : L :=
variable {f : K →+* L} {a : L}
+#print RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero /-
theorem eval_eq_zero_of_eval₂_denom_eq_zero {x : RatFunc K}
(h : Polynomial.eval₂ f a (denom x) = 0) : eval f a x = 0 := by rw [eval, h, div_zero]
#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero
+-/
+#print RatFunc.eval₂_denom_ne_zero /-
theorem eval₂_denom_ne_zero {x : RatFunc K} (h : eval f a x ≠ 0) :
Polynomial.eval₂ f a (denom x) ≠ 0 :=
mt eval_eq_zero_of_eval₂_denom_eq_zero h
#align ratfunc.eval₂_denom_ne_zero RatFunc.eval₂_denom_ne_zero
+-/
variable (f a)
+#print RatFunc.eval_C /-
@[simp]
theorem eval_C {c : K} : eval f a (C c) = f c := by simp [eval]
#align ratfunc.eval_C RatFunc.eval_C
+-/
+#print RatFunc.eval_X /-
@[simp]
theorem eval_X : eval f a X = a := by simp [eval]
#align ratfunc.eval_X RatFunc.eval_X
+-/
+#print RatFunc.eval_zero /-
@[simp]
theorem eval_zero : eval f a 0 = 0 := by simp [eval]
#align ratfunc.eval_zero RatFunc.eval_zero
+-/
+#print RatFunc.eval_one /-
@[simp]
theorem eval_one : eval f a 1 = 1 := by simp [eval]
#align ratfunc.eval_one RatFunc.eval_one
+-/
+#print RatFunc.eval_algebraMap /-
@[simp]
theorem eval_algebraMap {S : Type _} [CommSemiring S] [Algebra S K[X]] (p : S) :
eval f a (algebraMap _ _ p) = (algebraMap _ K[X] p).eval₂ f a := by
simp [eval, IsScalarTower.algebraMap_apply S K[X] (RatFunc K)]
#align ratfunc.eval_algebra_map RatFunc.eval_algebraMap
+-/
+#print RatFunc.eval_add /-
/-- `eval` is an additive homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 1 (X / (X-1)) + eval _ 1 (-1 / (X-1)) = 0`
@@ -1570,7 +1743,9 @@ theorem eval_add {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
congr 1
apply num_denom_add
#align ratfunc.eval_add RatFunc.eval_add
+-/
+#print RatFunc.eval_mul /-
/-- `eval` is a multiplicative homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 0 X * eval _ 0 (1/X) = 0 ≠ 1 = eval _ 0 1 = eval _ 0 (X * 1/X)`.
@@ -1591,6 +1766,7 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
congr 1
apply num_denom_mul
#align ratfunc.eval_mul RatFunc.eval_mul
+-/
end Field
@@ -1625,10 +1801,12 @@ theorem intDegree_one : intDegree (1 : RatFunc K) = 0 := by
#align ratfunc.int_degree_one RatFunc.intDegree_one
-/
+#print RatFunc.intDegree_C /-
@[simp]
theorem intDegree_C (k : K) : intDegree (RatFunc.C k) = 0 := by
rw [int_degree, num_C, nat_degree_C, denom_C, nat_degree_one, sub_self]
#align ratfunc.int_degree_C RatFunc.intDegree_C
+-/
#print RatFunc.intDegree_X /-
@[simp]
@@ -1638,12 +1816,14 @@ theorem intDegree_X : intDegree (X : RatFunc K) = 1 := by
#align ratfunc.int_degree_X RatFunc.intDegree_X
-/
+#print RatFunc.intDegree_polynomial /-
@[simp]
theorem intDegree_polynomial {p : K[X]} : intDegree (algebraMap K[X] (RatFunc K) p) = natDegree p :=
by
rw [int_degree, RatFunc.num_algebraMap, RatFunc.denom_algebraMap, Polynomial.natDegree_one,
Int.ofNat_zero, sub_zero]
#align ratfunc.int_degree_polynomial RatFunc.intDegree_polynomial
+-/
#print RatFunc.intDegree_mul /-
theorem intDegree_mul {x y : RatFunc K} (hx : x ≠ 0) (hy : y ≠ 0) :
@@ -1695,6 +1875,7 @@ theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : R
#align ratfunc.nat_degree_num_mul_right_sub_nat_degree_denom_mul_left_eq_int_degree RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree
-/
+#print RatFunc.intDegree_add_le /-
theorem intDegree_add_le {x y : RatFunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
intDegree (x + y) ≤ max (intDegree x) (intDegree y) :=
by
@@ -1708,6 +1889,7 @@ theorem intDegree_add_le {x y : RatFunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
le_max_iff, mul_comm y.num]
exact nat_degree_add_le _ _
#align ratfunc.int_degree_add_le RatFunc.intDegree_add_le
+-/
end IntDegree
@@ -1717,96 +1899,131 @@ open PowerSeries LaurentSeries HahnSeries
variable {F : Type u} [Field F] (p q : F[X]) (f g : RatFunc F)
+#print RatFunc.coeAlgHom /-
/-- The coercion `ratfunc F → laurent_series F` as bundled alg hom. -/
def coeAlgHom (F : Type u) [Field F] : RatFunc F →ₐ[F[X]] LaurentSeries F :=
liftAlgHom (Algebra.ofId _ _) <|
nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ <|
Polynomial.algebraMap_hahnSeries_injective _
#align ratfunc.coe_alg_hom RatFunc.coeAlgHom
+-/
+#print RatFunc.coeToLaurentSeries /-
instance coeToLaurentSeries : Coe (RatFunc F) (LaurentSeries F) :=
⟨coeAlgHom F⟩
#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeries
+-/
+#print RatFunc.coe_def /-
theorem coe_def : (f : LaurentSeries F) = coeAlgHom F f :=
rfl
#align ratfunc.coe_def RatFunc.coe_def
+-/
+#print RatFunc.coe_num_denom /-
theorem coe_num_denom : (f : LaurentSeries F) = f.num / f.den :=
liftAlgHom_apply _ _ f
#align ratfunc.coe_num_denom RatFunc.coe_num_denom
+-/
+#print RatFunc.coe_injective /-
theorem coe_injective : Function.Injective (coe : RatFunc F → LaurentSeries F) :=
liftAlgHom_injective _ (Polynomial.algebraMap_hahnSeries_injective _)
#align ratfunc.coe_injective RatFunc.coe_injective
+-/
+#print RatFunc.coe_apply /-
@[simp, norm_cast]
theorem coe_apply : coeAlgHom F f = f :=
rfl
#align ratfunc.coe_apply RatFunc.coe_apply
+-/
+#print RatFunc.coe_zero /-
@[simp, norm_cast]
theorem coe_zero : ((0 : RatFunc F) : LaurentSeries F) = 0 :=
(coeAlgHom F).map_zero
#align ratfunc.coe_zero RatFunc.coe_zero
+-/
+#print RatFunc.coe_one /-
@[simp, norm_cast]
theorem coe_one : ((1 : RatFunc F) : LaurentSeries F) = 1 :=
(coeAlgHom F).map_one
#align ratfunc.coe_one RatFunc.coe_one
+-/
+#print RatFunc.coe_add /-
@[simp, norm_cast]
theorem coe_add : ((f + g : RatFunc F) : LaurentSeries F) = f + g :=
(coeAlgHom F).map_add _ _
#align ratfunc.coe_add RatFunc.coe_add
+-/
+#print RatFunc.coe_sub /-
@[simp, norm_cast]
theorem coe_sub : ((f - g : RatFunc F) : LaurentSeries F) = f - g :=
(coeAlgHom F).map_sub _ _
#align ratfunc.coe_sub RatFunc.coe_sub
+-/
+#print RatFunc.coe_neg /-
@[simp, norm_cast]
theorem coe_neg : ((-f : RatFunc F) : LaurentSeries F) = -f :=
(coeAlgHom F).map_neg _
#align ratfunc.coe_neg RatFunc.coe_neg
+-/
+#print RatFunc.coe_mul /-
@[simp, norm_cast]
theorem coe_mul : ((f * g : RatFunc F) : LaurentSeries F) = f * g :=
(coeAlgHom F).map_mul _ _
#align ratfunc.coe_mul RatFunc.coe_mul
+-/
+#print RatFunc.coe_pow /-
@[simp, norm_cast]
theorem coe_pow (n : ℕ) : ((f ^ n : RatFunc F) : LaurentSeries F) = f ^ n :=
(coeAlgHom F).map_pow _ _
#align ratfunc.coe_pow RatFunc.coe_pow
+-/
+#print RatFunc.coe_div /-
@[simp, norm_cast]
theorem coe_div :
((f / g : RatFunc F) : LaurentSeries F) = (f : LaurentSeries F) / (g : LaurentSeries F) :=
map_div₀ (coeAlgHom F) _ _
#align ratfunc.coe_div RatFunc.coe_div
+-/
+#print RatFunc.coe_C /-
@[simp, norm_cast]
theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r := by
rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_C, coe_C, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_C RatFunc.coe_C
+-/
+#print RatFunc.coe_smul /-
-- TODO: generalize over other modules
@[simp, norm_cast]
theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • f := by
rw [smul_eq_C_mul, ← C_mul_eq_smul, coe_mul, coe_C]
#align ratfunc.coe_smul RatFunc.coe_smul
+-/
+#print RatFunc.coe_X /-
@[simp, norm_cast]
theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
rw [coe_num_denom, num_X, denom_X, coe_coe, Polynomial.coe_X, coe_X, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_X RatFunc.coe_X
+-/
instance : Algebra (RatFunc F) (LaurentSeries F) :=
RingHom.toAlgebra (coeAlgHom F).toRingHom
+#print RatFunc.algebraMap_apply_div /-
theorem algebraMap_apply_div :
algebraMap (RatFunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap F[X] (LaurentSeries F) p / algebraMap _ _ q :=
@@ -1815,6 +2032,7 @@ theorem algebraMap_apply_div :
rw [← mk_one, coe_def, coe_alg_hom, mk_eq_div, lift_alg_hom_apply_div, map_one, div_one,
Algebra.ofId_apply]
#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_div
+-/
instance : IsScalarTower F[X] (RatFunc F) (LaurentSeries F) :=
⟨fun x y z => by ext; simp⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -185,7 +185,6 @@ theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X]
f p q = f (q' * p) (q' * q) := (H hq hq').symm
_ = f (q * p') (q * q') := by rw [h, mul_comm q']
_ = f p' q' := H hq' hq
-
#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
-/
@@ -541,14 +540,14 @@ end Field
section TacticInterlude
-/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
-- pre-porting note: should comm_ring be disabled here?
/-- Solve equations for `ratfunc K` by working in `fraction_ring K[X]`. -/
unsafe def frac_tac : tactic Unit :=
sorry
#align ratfunc.frac_tac ratfunc.frac_tac
-/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:336:4: warning: unsupported (TODO): `[tacs] -/
/-- Solve equations for `ratfunc K` by applying `ratfunc.induction_on`. -/
unsafe def smul_tac : tactic Unit :=
sorry
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -158,7 +158,8 @@ When `[is_domain K]`, one can use `ratfunc.lift_on'`, which has the stronger req
of `∀ {p q a : K[X]} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)`.
-/
protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X], P)
- (H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') : P :=
+ (H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
+ P :=
Localization.liftOn (to_fraction_ring x)
(-- Fix timeout by manipulating elaboration order
fun p q => f p q)
@@ -274,7 +275,7 @@ The value of `f p 0` for any `p` is never used and in principle this may be anyt
although many usages of `lift_on'` assume `f p 0 = f 0 1`.
-/
protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X], P)
- (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
+ (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
x.liftOn f fun p q p' q' hq hq' =>
lift_on_condition_of_lift_on'_condition (@H) (nonZeroDivisors.ne_zero hq)
(nonZeroDivisors.ne_zero hq')
@@ -291,7 +292,7 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
-/
-/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
+/- ./././Mathport/Syntax/Translate/Command.lean:323:38: unsupported irreducible non-definition -/
#print RatFunc.induction_on' /-
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
@@ -299,7 +300,7 @@ then `P` holds on all elements of `ratfunc K`.
See also `induction_on`, which is a recursion principle defined in terms of `algebra_map`.
-/
protected irreducible_def induction_on' {P : RatFunc K → Prop} :
- ∀ (x : RatFunc K) (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (RatFunc.mk p q)), P x
+ ∀ (x : RatFunc K) (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (RatFunc.mk p q)), P x
| ⟨x⟩, f =>
Localization.induction_on x fun ⟨p, q⟩ => by
simpa only [mk_coe_def, Localization.mk_eq_mk'] using
@@ -1452,10 +1453,12 @@ theorem smul_eq_C_mul (r : K) (x : RatFunc K) : r • x = C r * x := by
rw [Algebra.smul_def, algebra_map_eq_C]
#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mul
+#print RatFunc.X /-
/-- `ratfunc.X` is the polynomial variable (aka indeterminate). -/
def X : RatFunc K :=
algebraMap K[X] (RatFunc K) Polynomial.X
#align ratfunc.X RatFunc.X
+-/
@[simp]
theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/34ebaffc1d1e8e783fc05438ec2e70af87275ac9
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
+! leanprover-community/mathlib commit 67237461d7cbf410706a6a06f4d40cbb594c32dc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -105,9 +105,7 @@ open scoped nonZeroDivisors Polynomial
universe u v
-variable (K : Type u) [hring : CommRing K] [hdomain : IsDomain K]
-
-include hring
+variable (K : Type u)
#print RatFunc /-
/-- `ratfunc K` is `K(x)`, the field of rational functions over `K`.
@@ -116,15 +114,19 @@ The inclusion of polynomials into `ratfunc` is `algebra_map K[X] (ratfunc K)`,
the maps between `ratfunc K` and another field of fractions of `K[X]`,
especially `fraction_ring K[X]`, are given by `is_localization.algebra_equiv`.
-/
-structure RatFunc : Type u where ofFractionRing ::
+structure RatFunc [CommRing K] : Type u where ofFractionRing ::
toFractionRing : FractionRing K[X]
#align ratfunc RatFunc
-/
namespace RatFunc
+section CommRing
+
variable {K}
+variable [CommRing K]
+
section Rec
/-! ### Constructing `ratfunc`s and their induction principles -/
@@ -174,7 +176,21 @@ theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀
exact Localization.liftOn_mk _ _ _ _
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
-include hdomain
+#print RatFunc.lift_on_condition_of_lift_on'_condition /-
+theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X], P}
+ (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
+ (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
+ calc
+ f p q = f (q' * p) (q' * q) := (H hq hq').symm
+ _ = f (q * p') (q * q') := by rw [h, mul_comm q']
+ _ = f p' q' := H hq' hq
+
+#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
+-/
+
+section IsDomain
+
+variable [IsDomain K]
#print RatFunc.mk /-
/-- `ratfunc.mk (p q : K[X])` is `p / q` as a rational function.
@@ -249,22 +265,6 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p,
SetLike.coe_mk]
#align ratfunc.lift_on_mk RatFunc.liftOn_mk
-omit hdomain
-
-#print RatFunc.lift_on_condition_of_lift_on'_condition /-
-theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X], P}
- (H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
- (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
- calc
- f p q = f (q' * p) (q' * q) := (H hq hq').symm
- _ = f (q * p') (q * q') := by rw [h, mul_comm q']
- _ = f p' q' := H hq' hq
-
-#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
--/
-
-include hdomain
-
#print RatFunc.liftOn' /-
/-- Non-dependent recursion principle for `ratfunc K`: if `f p q : P` for all `p q`,
such that `f (a * p) (a * q) = f p q`, then we can find a value of `P`
@@ -307,6 +307,8 @@ protected irreducible_def induction_on' {P : RatFunc K → Prop} :
#align ratfunc.induction_on' RatFunc.induction_on'
-/
+end IsDomain
+
end Rec
section Field
@@ -406,7 +408,9 @@ theorem ofFractionRing_mul (p q : FractionRing K[X]) :
#align ratfunc.of_fraction_ring_mul RatFunc.ofFractionRing_mul
-/
-include hdomain
+section IsDomain
+
+variable [IsDomain K]
#print RatFunc.div /-
/-- Division of rational functions. -/
@@ -446,9 +450,9 @@ theorem mul_inv_cancel : ∀ {p : RatFunc K} (hp : p ≠ 0), p * p⁻¹ = 1
#align ratfunc.mul_inv_cancel RatFunc.mul_inv_cancel
-/
-section SMul
+end IsDomain
-omit hdomain
+section SMul
variable {R : Type _}
@@ -482,13 +486,13 @@ theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x
· simp only
#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smul
-include hdomain
+section IsDomain
-variable [Monoid R] [DistribMulAction R K[X]]
+variable [IsDomain K]
-variable [htower : IsScalarTower R K[X] K[X]]
+variable [Monoid R] [DistribMulAction R K[X]]
-include htower
+variable [IsScalarTower R K[X] K[X]]
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q :=
by
@@ -502,12 +506,12 @@ theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk
instance : IsScalarTower R K[X] (RatFunc K) :=
⟨fun c p q => q.inductionOn' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
+end IsDomain
+
end SMul
variable (K)
-omit hdomain
-
instance [Subsingleton K] : Subsingleton (RatFunc K) :=
toFractionRing_injective.Subsingleton
@@ -532,9 +536,12 @@ def toFractionRingRingEquiv : RatFunc K ≃+* FractionRing K[X]
map_mul' := fun ⟨_⟩ ⟨_⟩ => by simp [← of_fraction_ring_mul]
#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquiv
-omit hring
+end Field
+
+section TacticInterlude
/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
+-- pre-porting note: should comm_ring be disabled here?
/-- Solve equations for `ratfunc K` by working in `fraction_ring K[X]`. -/
unsafe def frac_tac : tactic Unit :=
sorry
@@ -546,7 +553,9 @@ unsafe def smul_tac : tactic Unit :=
sorry
#align ratfunc.smul_tac ratfunc.smul_tac
-include hring
+end TacticInterlude
+
+variable (K)
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
@@ -633,8 +642,6 @@ section LiftHom
variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
-omit hring
-
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -805,11 +812,9 @@ end LiftHom
variable (K)
-include hdomain
-
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-instance : Field (RatFunc K) :=
+instance [IsDomain K] : Field (RatFunc K) :=
{ RatFunc.instCommRing K,
RatFunc.instNontrivial K with
inv := Inv.inv
@@ -823,14 +828,14 @@ instance : Field (RatFunc K) :=
mul_inv_cancel := fun _ => mul_inv_cancel
zpow := zpowRec }
-end Field
-
section IsFractionRing
/-! ### `ratfunc` as field of fractions of `polynomial` -/
-include hdomain
+section IsDomain
+
+variable [IsDomain K]
instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
where
@@ -990,10 +995,6 @@ end LiftAlgHom
variable (K)
-omit hdomain
-
-include hdomain
-
/-- `ratfunc K` is the field of fractions of the polynomials over `K`. -/
instance : IsFractionRing K[X] (RatFunc K)
where
@@ -1071,8 +1072,14 @@ theorem toFractionRingRingEquiv_symm_eq :
simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, AlgEquiv.coe_ringEquiv']
#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eq
+end IsDomain
+
end IsFractionRing
+end CommRing
+
+variable {K}
+
section NumDenom
/-! ### Numerator and denominator -/
@@ -1080,11 +1087,7 @@ section NumDenom
open GCDMonoid Polynomial
-omit hring
-
-variable [hfield : Field K]
-
-include hfield
+variable [Field K]
#print RatFunc.numDenom /-
/-- `ratfunc.num_denom` are numerator and denominator of a rational function over a field,
@@ -1421,7 +1424,9 @@ section Eval
/-! ### Polynomial structure: `C`, `X`, `eval` -/
-include hdomain
+section Domain
+
+variable [CommRing K] [IsDomain K]
/-- `ratfunc.C a` is the constant rational function `a`. -/
def C : K →+* RatFunc K :=
@@ -1457,11 +1462,11 @@ theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
rfl
#align ratfunc.algebra_map_X RatFunc.algebraMap_X
-omit hring hdomain
+end Domain
-variable [hfield : Field K]
+section Field
-include hfield
+variable [Field K]
@[simp]
theorem num_C (c : K) : num (C c) = Polynomial.C c :=
@@ -1585,14 +1590,14 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
apply num_denom_mul
#align ratfunc.eval_mul RatFunc.eval_mul
+end Field
+
end Eval
section IntDegree
open Polynomial
-omit hring
-
variable [Field K]
#print RatFunc.intDegree /-
@@ -1708,8 +1713,6 @@ section LaurentSeries
open PowerSeries LaurentSeries HahnSeries
-omit hring
-
variable {F : Type u} [Field F] (p q : F[X]) (f g : RatFunc F)
/-- The coercion `ratfunc F → laurent_series F` as bundled alg hom. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -762,7 +762,7 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
intro h
refine' Localization.r_of_eq _
have := mul_eq_mul_of_div_eq_div _ _ _ _ h
- rwa [← map_mul, ← map_mul, hφ.eq_iff, mul_comm, mul_comm y_a] at this
+ rwa [← map_mul, ← map_mul, hφ.eq_iff, mul_comm, mul_comm y_a] at this
all_goals exact map_ne_zero_of_mem_nonZeroDivisors _ hφ (SetLike.coe_mem _)
· exact fun _ => rfl
· exact fun _ => rfl
@@ -1315,7 +1315,7 @@ theorem num_denom_mul (x y : RatFunc K) :
-/
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
- num x ∣ p ↔ ∃ (q : K[X])(hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
+ num x ∣ p ↔ ∃ (q : K[X]) (hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
by
constructor
· rintro ⟨q, rfl⟩
@@ -1409,7 +1409,7 @@ theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y
x.num * y.den + x.den * y.num ≠ 0 := by
intro h_zero
have h := num_denom_add x y
- rw [h_zero, MulZeroClass.zero_mul] at h
+ rw [h_zero, MulZeroClass.zero_mul] at h
exact (mul_ne_zero (num_ne_zero hxy) (mul_ne_zero x.denom_ne_zero y.denom_ne_zero)) h
#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero RatFunc.num_mul_denom_add_denom_mul_num_ne_zero
-/
@@ -1555,7 +1555,7 @@ theorem eval_add {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
unfold eval
by_cases hxy : Polynomial.eval₂ f a (denom (x + y)) = 0
· have := Polynomial.eval₂_eq_zero_of_dvd_of_eval₂_eq_zero f a (denom_add_dvd x y) hxy
- rw [Polynomial.eval₂_mul] at this
+ rw [Polynomial.eval₂_mul] at this
cases mul_eq_zero.mp this <;> contradiction
rw [div_add_div _ _ hx hy, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
@@ -1576,7 +1576,7 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
unfold eval
by_cases hxy : Polynomial.eval₂ f a (denom (x * y)) = 0
· have := Polynomial.eval₂_eq_zero_of_dvd_of_eval₂_eq_zero f a (denom_mul_dvd x y) hxy
- rw [Polynomial.eval₂_mul] at this
+ rw [Polynomial.eval₂_mul] at this
cases mul_eq_zero.mp this <;> contradiction
rw [div_mul_div_comm, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -206,7 +206,7 @@ theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p ⟨q, hq⟩) := by
- simp only [← mk_coe_def, [anonymous]]
+ simp only [← mk_coe_def, SetLike.coe_mk]
#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
@@ -229,7 +229,7 @@ theorem mk_one' (p : K[X]) : RatFunc.mk p 1 = ofFractionRing (algebraMap _ _ p)
theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
RatFunc.mk p q = RatFunc.mk p' q' ↔ p * q' = p' * q := by
rw [mk_def_of_ne _ hq, mk_def_of_ne _ hq', of_fraction_ring_injective.eq_iff,
- IsLocalization.mk'_eq_iff_eq', [anonymous], [anonymous],
+ IsLocalization.mk'_eq_iff_eq', SetLike.coe_mk, SetLike.coe_mk,
(IsFractionRing.injective K[X] (FractionRing K[X])).eq_iff]
#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
-/
@@ -246,7 +246,7 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p,
lift_on_of_fraction_ring_mk, Submonoid.coe_one]
·
simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, lift_on_of_fraction_ring_mk,
- [anonymous]]
+ SetLike.coe_mk]
#align ratfunc.lift_on_mk RatFunc.liftOn_mk
omit hdomain
@@ -685,7 +685,7 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
·
simpa only [map_apply_of_fraction_ring_mk, of_fraction_ring_injective.eq_iff,
Localization.mk_eq_mk_iff, Localization.r_iff_exists, mul_cancel_left_coe_nonZeroDivisors,
- exists_const, [anonymous], ← map_mul, hf.eq_iff] using h
+ exists_const, SetLike.coe_mk, ← map_mul, hf.eq_iff] using h
· rfl
· rfl
#align ratfunc.map_injective RatFunc.map_injective
@@ -706,7 +706,7 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
map_add' := by
rintro ⟨x⟩ ⟨y⟩; induction x; induction y
·
- simp only [← of_fraction_ring_add, Localization.add_mk, map_add, [anonymous], map_mul,
+ simp only [← of_fraction_ring_add, Localization.add_mk, map_add, SetLike.coe_mk, map_mul,
MonoidHom.toFun_eq_coe, map_apply_of_fraction_ring_mk, Submonoid.mk_mul_mk,
Submonoid.coe_mul]
· rfl
@@ -881,7 +881,7 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
by
have hq' : φ q ≠ 0 := nonZeroDivisors.ne_zero (hφ (mem_non_zero_divisors_iff_ne_zero.mpr hq))
simp only [← mk_eq_div, mk_eq_localization_mk _ hq, map_apply_of_fraction_ring_mk,
- mk_eq_localization_mk _ hq', [anonymous]]
+ mk_eq_localization_mk _ hq', SetLike.coe_mk]
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
@[simp]
@@ -1049,8 +1049,8 @@ theorem ofFractionRing_eq :
funext fun x =>
Localization.induction_on x fun x => by
simp only [IsLocalization.algEquiv_apply, IsLocalization.ringEquivOfRingEquiv_apply,
- [anonymous], Localization.mk_eq_mk'_apply, IsLocalization.map_mk', of_fraction_ring_mk',
- RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
+ RingEquiv.toFun_eq_coe, Localization.mk_eq_mk'_apply, IsLocalization.map_mk',
+ of_fraction_ring_mk', RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
@[simp]
@@ -1059,7 +1059,7 @@ theorem toFractionRing_eq :
funext fun ⟨x⟩ =>
Localization.induction_on x fun x => by
simp only [Localization.mk_eq_mk'_apply, of_fraction_ring_mk', IsLocalization.algEquiv_apply,
- [anonymous], IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
+ RingEquiv.toFun_eq_coe, IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -99,9 +99,9 @@ the codomain is not a field or even an integral domain.
noncomputable section
-open Classical
+open scoped Classical
-open nonZeroDivisors Polynomial
+open scoped nonZeroDivisors Polynomial
universe u v
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -142,9 +142,6 @@ theorem toFractionRing_injective : Function.Injective (toFractionRing : _ → Fr
#align ratfunc.to_fraction_ring_injective RatFunc.toFractionRing_injective
-/
-/- warning: ratfunc.lift_on -> RatFunc.liftOn is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on RatFunc.liftOnₓ'. -/
/-- Non-dependent recursion principle for `ratfunc K`:
To construct a term of `P : Sort*` out of `x : ratfunc K`,
it suffices to provide a constructor `f : Π (p q : K[X]), P`
@@ -169,9 +166,6 @@ protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X
mul_cancel_left_coe_nonZeroDivisors.mp mul_eq)
#align ratfunc.lift_on RatFunc.liftOn
-/- warning: ratfunc.lift_on_of_fraction_ring_mk -> RatFunc.liftOn_ofFractionRing_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mkₓ'. -/
theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ p q : K[X], P)
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
RatFunc.liftOn (of_fraction_ring (Localization.mk n d)) f @H = f n d :=
@@ -195,9 +189,6 @@ protected irreducible_def mk (p q : K[X]) : RatFunc K :=
#align ratfunc.mk RatFunc.mk
-/
-/- warning: ratfunc.mk_eq_div' -> RatFunc.mk_eq_div' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'ₓ'. -/
theorem mk_eq_div' (p q : K[X]) :
RatFunc.mk p q = ofFractionRing (algebraMap _ _ p / algebraMap _ _ q) := by unfold RatFunc.mk
#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'
@@ -208,43 +199,28 @@ theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
#align ratfunc.mk_zero RatFunc.mk_zero
-/
-/- warning: ratfunc.mk_coe_def -> RatFunc.mk_coe_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_coe_def RatFunc.mk_coe_defₓ'. -/
theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p q) := by
simp only [mk_eq_div', ← Localization.mk_eq_mk', FractionRing.mk_eq_div]
#align ratfunc.mk_coe_def RatFunc.mk_coe_def
-/- warning: ratfunc.mk_def_of_mem -> RatFunc.mk_def_of_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_memₓ'. -/
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p ⟨q, hq⟩) := by
simp only [← mk_coe_def, [anonymous]]
#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
-/- warning: ratfunc.mk_def_of_ne -> RatFunc.mk_def_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_neₓ'. -/
theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
ofFractionRing (IsLocalization.mk' _ p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
mk_def_of_mem p _
#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_ne
-/- warning: ratfunc.mk_eq_localization_mk -> RatFunc.mk_eq_localization_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mkₓ'. -/
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
by rw [mk_def_of_ne, Localization.mk_eq_mk']
#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
-/- warning: ratfunc.mk_one' -> RatFunc.mk_one' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one' RatFunc.mk_one'ₓ'. -/
theorem mk_one' (p : K[X]) : RatFunc.mk p 1 = ofFractionRing (algebraMap _ _ p) := by
rw [← IsLocalization.mk'_one (FractionRing K[X]) p, ← mk_coe_def, Submonoid.coe_one]
#align ratfunc.mk_one' RatFunc.mk_one'
@@ -258,9 +234,6 @@ theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
-/
-/- warning: ratfunc.lift_on_mk -> RatFunc.liftOn_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_mk RatFunc.liftOn_mkₓ'. -/
theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
@@ -382,12 +355,6 @@ protected irreducible_def sub : RatFunc K → RatFunc K → RatFunc K
instance : Sub (RatFunc K) :=
⟨RatFunc.sub⟩
-/- warning: ratfunc.of_fraction_ring_sub -> RatFunc.ofFractionRing_sub is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HSub.hSub.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (SubNegMonoid.toHasSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddGroup.toSubNegMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddGroupWithOne.toAddGroup.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toAddCommGroupWithOne.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))))) p q)) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSub.{u1} (RatFunc.{u1} K hring) (RatFunc.hasSub.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HSub.hSub.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommRingLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) p q)) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSub.{u1} (RatFunc.{u1} K hring) (RatFunc.instSubRatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_subₓ'. -/
theorem ofFractionRing_sub (p q : FractionRing K[X]) :
ofFractionRing (p - q) = ofFractionRing p - ofFractionRing q := by unfold Sub.sub RatFunc.sub
#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_sub
@@ -451,12 +418,6 @@ protected irreducible_def div : RatFunc K → RatFunc K → RatFunc K
instance : Div (RatFunc K) :=
⟨RatFunc.div⟩
-/- warning: ratfunc.of_fraction_ring_div -> RatFunc.ofFractionRing_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) p q)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))) p q)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_divₓ'. -/
theorem ofFractionRing_div (p q : FractionRing K[X]) :
ofFractionRing (p / q) = ofFractionRing p / ofFractionRing q := by unfold Div.div RatFunc.div
#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_div
@@ -471,12 +432,6 @@ protected irreducible_def inv : RatFunc K → RatFunc K
instance : Inv (RatFunc K) :=
⟨RatFunc.inv⟩
-/- warning: ratfunc.of_fraction_ring_inv -> RatFunc.ofFractionRing_inv is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (Inv.inv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasInv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) p)) (Inv.inv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasInv.{u1} K hring hdomain) (RatFunc.ofFractionRing.{u1} K hring p))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (Inv.inv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toInv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))) p)) (Inv.inv.{u1} (RatFunc.{u1} K hring) (RatFunc.instInvRatFunc.{u1} K hring hdomain) (RatFunc.ofFractionRing.{u1} K hring p))
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_invₓ'. -/
theorem ofFractionRing_inv (p : FractionRing K[X]) : ofFractionRing p⁻¹ = (ofFractionRing p)⁻¹ := by
unfold Inv.inv RatFunc.inv
#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_inv
@@ -509,29 +464,14 @@ protected irreducible_def smul [SMul R (FractionRing K[X])] : R → RatFunc K
instance [SMul R (FractionRing K[X])] : SMul R (RatFunc K) :=
⟨RatFunc.smul⟩
-/- warning: ratfunc.of_fraction_ring_smul -> RatFunc.ofFractionRing_smul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {R : Type.{u2}} [_inst_1 : SMul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))] (c : R) (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (SMul.smul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _inst_1 c p)) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R _inst_1) c (RatFunc.ofFractionRing.{u1} K hring p))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] {R : Type.{u1}} [_inst_1 : SMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))] (c : R) (p : FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)), Eq.{succ u2} (RatFunc.{u2} K hring) (RatFunc.ofFractionRing.{u2} K hring (HSMul.hSMul.{u1, u2, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (instHSMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) _inst_1) c p)) (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R _inst_1)) c (RatFunc.ofFractionRing.{u2} K hring p))
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_smul RatFunc.ofFractionRing_smulₓ'. -/
theorem ofFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : FractionRing K[X]) :
ofFractionRing (c • p) = c • ofFractionRing p := by unfold SMul.smul RatFunc.smul
#align ratfunc.of_fraction_ring_smul RatFunc.ofFractionRing_smul
-/- warning: ratfunc.to_fraction_ring_smul -> RatFunc.toFractionRing_smul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {R : Type.{u2}} [_inst_1 : SMul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))] (c : R) (p : RatFunc.{u1} K hring), Eq.{succ u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.toFractionRing.{u1} K hring (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R _inst_1) c p)) (SMul.smul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _inst_1 c (RatFunc.toFractionRing.{u1} K hring p))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] {R : Type.{u1}} [_inst_1 : SMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))] (c : R) (p : RatFunc.{u2} K hring), Eq.{succ u2} (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (RatFunc.toFractionRing.{u2} K hring (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R _inst_1)) c p)) (HSMul.hSMul.{u1, u2, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (instHSMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) _inst_1) c (RatFunc.toFractionRing.{u2} K hring p))
-Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smulₓ'. -/
theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : RatFunc K) :
toFractionRing (c • p) = c • toFractionRing p := by cases p; rw [← of_fraction_ring_smul]
#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smul
-/- warning: ratfunc.smul_eq_C_smul -> RatFunc.smul_eq_C_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smulₓ'. -/
theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x :=
by
cases x
@@ -550,9 +490,6 @@ variable [htower : IsScalarTower R K[X] K[X]]
include htower
-/- warning: ratfunc.mk_smul -> RatFunc.mk_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_smul RatFunc.mk_smulₓ'. -/
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q :=
by
by_cases hq : q = 0
@@ -580,12 +517,6 @@ instance : Inhabited (RatFunc K) :=
instance [Nontrivial K] : Nontrivial (RatFunc K) :=
ofFractionRing_injective.Nontrivial
-/- warning: ratfunc.to_fraction_ring_ring_equiv -> RatFunc.toFractionRingRingEquiv is a dubious translation:
-lean 3 declaration is
- forall (K : Type.{u1}) [hring : CommRing.{u1} K], RingEquiv.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))
-but is expected to have type
- forall (K : Type.{u1}) [hring : CommRing.{u1} K], RingEquiv.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquivₓ'. -/
/-- `ratfunc K` is isomorphic to the field of fractions of `K[X]`, as rings.
This is an auxiliary definition; `simp`-normal form is `is_localization.alg_equiv`.
@@ -704,9 +635,6 @@ variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R]
omit hring
-/- warning: ratfunc.map -> RatFunc.map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map RatFunc.mapₓ'. -/
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -741,9 +669,6 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
· rfl
#align ratfunc.map RatFunc.map
-/- warning: ratfunc.map_apply_of_fraction_ring_mk -> RatFunc.map_apply_ofFractionRing_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mkₓ'. -/
theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
(hφ : R[X]⁰ ≤ S[X]⁰.comap φ) (n : R[X]) (d : R[X]⁰) :
map φ hφ (ofFractionRing (Localization.mk n d)) =
@@ -753,9 +678,6 @@ theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
rw [dif_pos]
#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mk
-/- warning: ratfunc.map_injective -> RatFunc.map_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_injective RatFunc.map_injectiveₓ'. -/
theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ)
(hf : Function.Injective φ) : Function.Injective (map φ hφ) :=
by
@@ -768,9 +690,6 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
· rfl
#align ratfunc.map_injective RatFunc.map_injective
-/- warning: ratfunc.map_ring_hom -> RatFunc.mapRingHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_ring_hom RatFunc.mapRingHomₓ'. -/
/-- Lift a ring homomorphism that maps polynomials `φ : R[X] →+* S[X]`
to a `ratfunc R →+* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -794,17 +713,11 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
· rfl }
#align ratfunc.map_ring_hom RatFunc.mapRingHom
-/- warning: ratfunc.coe_map_ring_hom_eq_coe_map -> RatFunc.coe_mapRingHom_eq_coe_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_mapₓ'. -/
theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) :
(mapRingHom φ hφ : RatFunc R → RatFunc S) = map φ hφ :=
rfl
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
-/- warning: ratfunc.lift_monoid_with_zero_hom -> RatFunc.liftMonoidWithZeroHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHomₓ'. -/
-- TODO: Generalize to `fun_like` classes,
/-- Lift an monoid with zero homomorphism `R[X] →*₀ G₀` to a `ratfunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -834,18 +747,12 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
simp only [map_zero, zero_div]
#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
-/- warning: ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk -> RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mkₓ'. -/
theorem liftMonoidWithZeroHom_apply_ofFractionRing_mk (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ)
(n : R[X]) (d : R[X]⁰) :
liftMonoidWithZeroHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftOn_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk
-/- warning: ratfunc.lift_monoid_with_zero_hom_injective -> RatFunc.liftMonoidWithZeroHom_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injectiveₓ'. -/
theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ G₀⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftMonoidWithZeroHom φ hφ') :=
@@ -861,9 +768,6 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
· exact fun _ => rfl
#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injective
-/- warning: ratfunc.lift_ring_hom -> RatFunc.liftRingHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom RatFunc.liftRingHomₓ'. -/
/-- Lift an injective ring homomorphism `R[X] →+* L` to a `ratfunc R →+* L`
by mapping both the numerator and denominator and quotienting them. -/
def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc R →+* L :=
@@ -886,17 +790,11 @@ def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc
· rfl }
#align ratfunc.lift_ring_hom RatFunc.liftRingHom
-/- warning: ratfunc.lift_ring_hom_apply_of_fraction_ring_mk -> RatFunc.liftRingHom_apply_ofFractionRing_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mkₓ'. -/
theorem liftRingHom_apply_ofFractionRing_mk (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) (n : R[X])
(d : R[X]⁰) : liftRingHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mk
-/- warning: ratfunc.lift_ring_hom_injective -> RatFunc.liftRingHom_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_injective RatFunc.liftRingHom_injectiveₓ'. -/
theorem liftRingHom_injective [Nontrivial R] (φ : R[X] →+* L) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftRingHom φ hφ') :=
@@ -950,32 +848,20 @@ instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
variable {K}
-/- warning: ratfunc.mk_one -> RatFunc.mk_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one RatFunc.mk_oneₓ'. -/
theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
#align ratfunc.mk_one RatFunc.mk_one
-/- warning: ratfunc.of_fraction_ring_algebra_map -> RatFunc.ofFractionRing_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMapₓ'. -/
theorem ofFractionRing_algebraMap (x : K[X]) :
ofFractionRing (algebraMap _ (FractionRing K[X]) x) = algebraMap _ _ x := by
rw [← mk_one, mk_one']
#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMap
-/- warning: ratfunc.mk_eq_div -> RatFunc.mk_eq_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div RatFunc.mk_eq_divₓ'. -/
@[simp]
theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap _ _ q := by
simp only [mk_eq_div', of_fraction_ring_div, of_fraction_ring_algebra_map]
#align ratfunc.mk_eq_div RatFunc.mk_eq_div
-/- warning: ratfunc.div_smul -> RatFunc.div_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.div_smul RatFunc.div_smulₓ'. -/
@[simp]
theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X] K[X]] (c : R)
(p q : K[X]) :
@@ -984,17 +870,11 @@ theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X]
by rw [← mk_eq_div, mk_smul, mk_eq_div]
#align ratfunc.div_smul RatFunc.div_smul
-/- warning: ratfunc.algebra_map_apply -> RatFunc.algebraMap_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply RatFunc.algebraMap_applyₓ'. -/
theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 := by
rw [← mk_eq_div]; rfl
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
-/- warning: ratfunc.map_apply_div_ne_zero -> RatFunc.map_apply_div_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zeroₓ'. -/
theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) = algebraMap _ _ (φ p) / algebraMap _ _ (φ q) :=
@@ -1004,9 +884,6 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
mk_eq_localization_mk _ hq', [anonymous]]
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
-/- warning: ratfunc.map_apply_div -> RatFunc.map_apply_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div RatFunc.map_apply_divₓ'. -/
@[simp]
theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) :
@@ -1020,9 +897,6 @@ theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHo
exact map_apply_div_ne_zero _ _ _ _ hq
#align ratfunc.map_apply_div RatFunc.map_apply_div
-/- warning: ratfunc.lift_monoid_with_zero_hom_apply_div -> RatFunc.liftMonoidWithZeroHom_apply_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_divₓ'. -/
@[simp]
theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
(φ : MonoidWithZeroHom K[X] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (p q : K[X]) :
@@ -1034,9 +908,6 @@ theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
lift_monoid_with_zero_hom_apply_of_fraction_ring_mk]
#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_div
-/- warning: ratfunc.lift_ring_hom_apply_div -> RatFunc.liftRingHom_apply_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_divₓ'. -/
@[simp]
theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
@@ -1045,26 +916,17 @@ theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ :
variable (K)
-/- warning: ratfunc.of_fraction_ring_comp_algebra_map -> RatFunc.ofFractionRing_comp_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMapₓ'. -/
theorem ofFractionRing_comp_algebraMap :
ofFractionRing ∘ algebraMap K[X] (FractionRing K[X]) = algebraMap _ _ :=
funext ofFractionRing_algebraMap
#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMap
-/- warning: ratfunc.algebra_map_injective -> RatFunc.algebraMap_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_injective RatFunc.algebraMap_injectiveₓ'. -/
theorem algebraMap_injective : Function.Injective (algebraMap K[X] (RatFunc K)) :=
by
rw [← of_fraction_ring_comp_algebra_map]
exact of_fraction_ring_injective.comp (IsFractionRing.injective _ _)
#align ratfunc.algebra_map_injective RatFunc.algebraMap_injective
-/- warning: ratfunc.algebra_map_eq_zero_iff -> RatFunc.algebraMap_eq_zero_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_eq_zero_iff RatFunc.algebraMap_eq_zero_iffₓ'. -/
@[simp]
theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0 ↔ x = 0 :=
⟨(injective_iff_map_eq_zero _).mp (algebraMap_injective K) _, fun hx => by
@@ -1073,9 +935,6 @@ theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0
variable {K}
-/- warning: ratfunc.algebra_map_ne_zero -> RatFunc.algebraMap_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zeroₓ'. -/
theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (RatFunc K) x ≠ 0 :=
mt (algebraMap_eq_zero_iff K).mp hx
#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zero
@@ -1085,9 +944,6 @@ section LiftAlgHom
variable {L R S : Type _} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [Algebra S K[X]]
[Algebra S L] [Algebra S R[X]] (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
-/- warning: ratfunc.map_alg_hom -> RatFunc.mapAlgHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_alg_hom RatFunc.mapAlgHomₓ'. -/
/-- Lift an algebra homomorphism that maps polynomials `φ : K[X] →ₐ[S] R[X]`
to a `ratfunc K →ₐ[S] ratfunc R`,
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -1099,17 +955,11 @@ def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
map_one, AlgHom.commutes] }
#align ratfunc.map_alg_hom RatFunc.mapAlgHom
-/- warning: ratfunc.coe_map_alg_hom_eq_coe_map -> RatFunc.coe_mapAlgHom_eq_coe_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_mapₓ'. -/
theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
(mapAlgHom φ hφ : RatFunc K → RatFunc R) = map φ hφ :=
rfl
#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_map
-/- warning: ratfunc.lift_alg_hom -> RatFunc.liftAlgHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom RatFunc.liftAlgHomₓ'. -/
/-- Lift an injective algebra homomorphism `K[X] →ₐ[S] L` to a `ratfunc K →ₐ[S] L`
by mapping both the numerator and denominator and quotienting them. -/
def liftAlgHom : RatFunc K →ₐ[S] L :=
@@ -1119,26 +969,17 @@ def liftAlgHom : RatFunc K →ₐ[S] L :=
lift_ring_hom_apply_div, AlgHom.coe_toRingHom, map_one, div_one, AlgHom.commutes] }
#align ratfunc.lift_alg_hom RatFunc.liftAlgHom
-/- warning: ratfunc.lift_alg_hom_apply_of_fraction_ring_mk -> RatFunc.liftAlgHom_apply_ofFractionRing_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mkₓ'. -/
theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
liftAlgHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mk
-/- warning: ratfunc.lift_alg_hom_injective -> RatFunc.liftAlgHom_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injectiveₓ'. -/
theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective φ)
(hφ' : K[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftAlgHom φ hφ') :=
liftMonoidWithZeroHom_injective _ hφ
#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injective
-/- warning: ratfunc.lift_alg_hom_apply_div -> RatFunc.liftAlgHom_apply_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_divₓ'. -/
@[simp]
theorem liftAlgHom_apply_div (p q : K[X]) :
liftAlgHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
@@ -1170,9 +1011,6 @@ instance : IsFractionRing K[X] (RatFunc K)
variable {K}
-/- warning: ratfunc.lift_on_div -> RatFunc.liftOn_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_div RatFunc.liftOn_divₓ'. -/
@[simp]
theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
@@ -1182,9 +1020,6 @@ theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
rw [← mk_eq_div, lift_on_mk _ _ f f0 @H']
#align ratfunc.lift_on_div RatFunc.liftOn_div
-/- warning: ratfunc.lift_on'_div -> RatFunc.liftOn'_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on'_div RatFunc.liftOn'_divₓ'. -/
@[simp]
theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1) (H) :
(algebraMap _ (RatFunc K) p / algebraMap _ _ q).liftOn' f @H = f p q :=
@@ -1193,9 +1028,6 @@ theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀
exact lift_on_condition_of_lift_on'_condition @H
#align ratfunc.lift_on'_div RatFunc.liftOn'_div
-/- warning: ratfunc.induction_on -> RatFunc.induction_on is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.induction_on RatFunc.induction_onₓ'. -/
/-- Induction principle for `ratfunc K`: if `f p q : P (p / q)` for all `p q : K[X]`,
then `P` holds on all elements of `ratfunc K`.
@@ -1206,17 +1038,11 @@ protected theorem induction_on {P : RatFunc K → Prop} (x : RatFunc K)
x.inductionOn' fun p q hq => by simpa using f p q hq
#align ratfunc.induction_on RatFunc.induction_on
-/- warning: ratfunc.of_fraction_ring_mk' -> RatFunc.ofFractionRing_mk' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'ₓ'. -/
theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
ofFractionRing (IsLocalization.mk' _ x y) = IsLocalization.mk' (RatFunc K) x y := by
rw [IsFractionRing.mk'_eq_div, IsFractionRing.mk'_eq_div, ← mk_eq_div', ← mk_eq_div]
#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'
-/- warning: ratfunc.of_fraction_ring_eq -> RatFunc.ofFractionRing_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eqₓ'. -/
@[simp]
theorem ofFractionRing_eq :
(ofFractionRing : FractionRing K[X] → RatFunc K) = IsLocalization.algEquiv K[X]⁰ _ _ :=
@@ -1227,9 +1053,6 @@ theorem ofFractionRing_eq :
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
-/- warning: ratfunc.to_fraction_ring_eq -> RatFunc.toFractionRing_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eqₓ'. -/
@[simp]
theorem toFractionRing_eq :
(toFractionRing : RatFunc K → FractionRing K[X]) = IsLocalization.algEquiv K[X]⁰ _ _ :=
@@ -1240,9 +1063,6 @@ theorem toFractionRing_eq :
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
-/- warning: ratfunc.to_fraction_ring_ring_equiv_symm_eq -> RatFunc.toFractionRingRingEquiv_symm_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eqₓ'. -/
@[simp]
theorem toFractionRingRingEquiv_symm_eq :
(toFractionRingRingEquiv K).symm = (IsLocalization.algEquiv K[X]⁰ _ _).toRingEquiv :=
@@ -1304,9 +1124,6 @@ def numDenom (x : RatFunc K) : K[X] × K[X] :=
#align ratfunc.num_denom RatFunc.numDenom
-/
-/- warning: ratfunc.num_denom_div -> RatFunc.numDenom_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_denom_div RatFunc.numDenom_divₓ'. -/
@[simp]
theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
numDenom (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1338,9 +1155,6 @@ theorem num_zero : num (0 : RatFunc K) = 0 := by convert num_div' (0 : K[X]) one
#align ratfunc.num_zero RatFunc.num_zero
-/
-/- warning: ratfunc.num_div -> RatFunc.num_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_div RatFunc.num_divₓ'. -/
@[simp]
theorem num_div (p q : K[X]) :
num (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1357,16 +1171,10 @@ theorem num_one : num (1 : RatFunc K) = 1 := by convert num_div (1 : K[X]) 1 <;>
#align ratfunc.num_one RatFunc.num_one
-/
-/- warning: ratfunc.num_algebra_map -> RatFunc.num_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_algebra_map RatFunc.num_algebraMapₓ'. -/
@[simp]
theorem num_algebraMap (p : K[X]) : num (algebraMap _ _ p) = p := by convert num_div p 1 <;> simp
#align ratfunc.num_algebra_map RatFunc.num_algebraMap
-/- warning: ratfunc.num_div_dvd -> RatFunc.num_div_dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd RatFunc.num_div_dvdₓ'. -/
theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) ∣ p :=
by
@@ -1375,9 +1183,6 @@ theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.num_div_dvd RatFunc.num_div_dvd
-/- warning: ratfunc.num_div_dvd' -> RatFunc.num_div_dvd' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd' RatFunc.num_div_dvd'ₓ'. -/
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@[simp]
theorem num_div_dvd' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
@@ -1392,9 +1197,6 @@ def denom (x : RatFunc K) : K[X] :=
#align ratfunc.denom RatFunc.denom
-/
-/- warning: ratfunc.denom_div -> RatFunc.denom_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div RatFunc.denom_divₓ'. -/
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
denom (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1430,17 +1232,11 @@ theorem denom_one : denom (1 : RatFunc K) = 1 := by
#align ratfunc.denom_one RatFunc.denom_one
-/
-/- warning: ratfunc.denom_algebra_map -> RatFunc.denom_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.denom_algebra_map RatFunc.denom_algebraMapₓ'. -/
@[simp]
theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (RatFunc K) p) = 1 := by
convert denom_div p one_ne_zero <;> simp
#align ratfunc.denom_algebra_map RatFunc.denom_algebraMap
-/- warning: ratfunc.denom_div_dvd -> RatFunc.denom_div_dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div_dvd RatFunc.denom_div_dvdₓ'. -/
@[simp]
theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q) ∣ q :=
by
@@ -1451,9 +1247,6 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.denom_div_dvd RatFunc.denom_div_dvd
-/- warning: ratfunc.num_div_denom -> RatFunc.num_div_denom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_denom RatFunc.num_div_denomₓ'. -/
@[simp]
theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x :=
x.inductionOn fun p q hq =>
@@ -1483,9 +1276,6 @@ theorem num_ne_zero {x : RatFunc K} (hx : x ≠ 0) : num x ≠ 0 :=
#align ratfunc.num_ne_zero RatFunc.num_ne_zero
-/
-/- warning: ratfunc.num_mul_eq_mul_denom_iff -> RatFunc.num_mul_eq_mul_denom_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_mul_eq_mul_denom_iff RatFunc.num_mul_eq_mul_denom_iffₓ'. -/
theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
x.num * q = p * x.den ↔ x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1524,9 +1314,6 @@ theorem num_denom_mul (x y : RatFunc K) :
#align ratfunc.num_denom_mul RatFunc.num_denom_mul
-/
-/- warning: ratfunc.num_dvd -> RatFunc.num_dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_dvd RatFunc.num_dvdₓ'. -/
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
num x ∣ p ↔ ∃ (q : K[X])(hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1541,9 +1328,6 @@ theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
exact num_div_dvd p hq
#align ratfunc.num_dvd RatFunc.num_dvd
-/- warning: ratfunc.denom_dvd -> RatFunc.denom_dvd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.denom_dvd RatFunc.denom_dvdₓ'. -/
theorem denom_dvd {x : RatFunc K} {q : K[X]} (hq : q ≠ 0) :
denom x ∣ q ↔ ∃ p : K[X], x = algebraMap _ _ p / algebraMap _ _ q :=
by
@@ -1591,20 +1375,11 @@ theorem denom_add_dvd (x y : RatFunc K) : denom (x + y) ∣ denom x * denom y :=
#align ratfunc.denom_add_dvd RatFunc.denom_add_dvd
-/
-/- warning: ratfunc.map_denom_ne_zero -> RatFunc.map_denom_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} {F : Type.{u3}} [_inst_1 : Zero.{u2} L] [_inst_2 : ZeroHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1] (φ : F), (Function.Injective.{succ u1, succ u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => L) (ZeroHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1 _inst_2)) φ)) -> (forall (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Ne.{succ u2} L (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => L) (ZeroHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1 _inst_2)) φ (RatFunc.denom.{u1} K hfield f)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L _inst_1))))
-but is expected to have type
- forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u2}} {F : Type.{u1}} [_inst_1 : Zero.{u2} L] [_inst_2 : ZeroHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1] (φ : F), (Function.Injective.{succ u3, succ u2} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (ZeroHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1 _inst_2) φ)) -> (forall (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (ZeroHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1 _inst_2) φ (RatFunc.denom.{u3} K hfield f)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) _inst_1)))
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zeroₓ'. -/
theorem map_denom_ne_zero {L F : Type _} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
(hφ : Function.Injective φ) (f : RatFunc K) : φ f.den ≠ 0 := fun H =>
(denom_ne_zero f) ((map_eq_zero_iff φ hφ).mp H)
#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
-/- warning: ratfunc.map_apply -> RatFunc.map_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply RatFunc.map_applyₓ'. -/
theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
(hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
map φ hφ f = algebraMap _ _ (φ f.num) / algebraMap _ _ (φ f.den) :=
@@ -1613,25 +1388,16 @@ theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X
exact denom_ne_zero _
#align ratfunc.map_apply RatFunc.map_apply
-/- warning: ratfunc.lift_monoid_with_zero_hom_apply -> RatFunc.liftMonoidWithZeroHom_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_applyₓ'. -/
theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X] →*₀ L)
(hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) : liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.den :=
by rw [← num_div_denom f, lift_monoid_with_zero_hom_apply_div, num_div_denom]
#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_apply
-/- warning: ratfunc.lift_ring_hom_apply -> RatFunc.liftRingHom_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_applyₓ'. -/
theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.den :=
liftMonoidWithZeroHom_apply _ _ _
#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
-/- warning: ratfunc.lift_alg_hom_apply -> RatFunc.liftAlgHom_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_applyₓ'. -/
theorem liftAlgHom_apply {L S : Type _} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
(φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftAlgHom φ hφ f = φ f.num / φ f.den :=
@@ -1657,68 +1423,35 @@ section Eval
include hdomain
-/- warning: ratfunc.C -> RatFunc.C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K], RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.C RatFunc.Cₓ'. -/
/-- `ratfunc.C a` is the constant rational function `a`. -/
def C : K →+* RatFunc K :=
algebraMap _ _
#align ratfunc.C RatFunc.C
-/- warning: ratfunc.algebra_map_eq_C -> RatFunc.algebraMap_eq_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} K (RatFunc.{u1} K hring) (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain K (CommRing.toCommSemiring.{u1} K hring) (Polynomial.algebraOfAlgebra.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.C.{u1} K hring hdomain)
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (algebraMap.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RatFunc.C.{u1} K hring)
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_Cₓ'. -/
@[simp]
theorem algebraMap_eq_C : algebraMap K (RatFunc K) = C :=
rfl
#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_C
-/- warning: ratfunc.algebra_map_C -> RatFunc.algebraMap_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_C RatFunc.algebraMap_Cₓ'. -/
@[simp]
theorem algebraMap_C (a : K) : algebraMap K[X] (RatFunc K) (Polynomial.C a) = C a :=
rfl
#align ratfunc.algebra_map_C RatFunc.algebraMap_C
-/- warning: ratfunc.algebra_map_comp_C -> RatFunc.algebraMap_comp_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RingHom.comp.{u1, u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RatFunc.C.{u1} K hring hdomain)
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHom.comp.{u1, u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RatFunc.C.{u1} K hring)
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_Cₓ'. -/
@[simp]
theorem algebraMap_comp_C : (algebraMap K[X] (RatFunc K)).comp Polynomial.C = C :=
rfl
#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_C
-/- warning: ratfunc.smul_eq_C_mul -> RatFunc.smul_eq_C_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mulₓ'. -/
theorem smul_eq_C_mul (r : K) (x : RatFunc K) : r • x = C r * x := by
rw [Algebra.smul_def, algebra_map_eq_C]
#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mul
-/- warning: ratfunc.X -> RatFunc.X is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], RatFunc.{u1} K hring
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K], RatFunc.{u1} K (Field.toCommRing.{u1} K hring)
-Case conversion may be inaccurate. Consider using '#align ratfunc.X RatFunc.Xₓ'. -/
/-- `ratfunc.X` is the polynomial variable (aka indeterminate). -/
def X : RatFunc K :=
algebraMap K[X] (RatFunc K) Polynomial.X
#align ratfunc.X RatFunc.X
-/- warning: ratfunc.algebra_map_X -> RatFunc.algebraMap_X is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_X RatFunc.algebraMap_Xₓ'. -/
@[simp]
theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
rfl
@@ -1730,20 +1463,11 @@ variable [hfield : Field K]
include hfield
-/- warning: ratfunc.num_C -> RatFunc.num_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.num_C RatFunc.num_Cₓ'. -/
@[simp]
theorem num_C (c : K) : num (C c) = Polynomial.C c :=
num_algebraMap _
#align ratfunc.num_C RatFunc.num_C
-/- warning: ratfunc.denom_C -> RatFunc.denom_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (RatFunc.C.{u1} K hfield) c)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.one.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.denom_C RatFunc.denom_Cₓ'. -/
@[simp]
theorem denom_C (c : K) : denom (C c) = 1 :=
denom_algebraMap _
@@ -1785,22 +1509,10 @@ def eval (f : K →+* L) (a : L) (p : RatFunc K) : L :=
variable {f : K →+* L} {a : L}
-/- warning: ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero -> RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] {f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))} {a : L} {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Eq.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] {f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))} {a : L} {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Eq.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero RatFunc.eval_eq_zero_of_eval₂_denom_eq_zeroₓ'. -/
theorem eval_eq_zero_of_eval₂_denom_eq_zero {x : RatFunc K}
(h : Polynomial.eval₂ f a (denom x) = 0) : eval f a x = 0 := by rw [eval, h, div_zero]
#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero
-/- warning: ratfunc.eval₂_denom_ne_zero -> RatFunc.eval₂_denom_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] {f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))} {a : L} {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] {f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))} {a : L} {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval₂_denom_ne_zero RatFunc.eval₂_denom_ne_zeroₓ'. -/
theorem eval₂_denom_ne_zero {x : RatFunc K} (h : eval f a x ≠ 0) :
Polynomial.eval₂ f a (denom x) ≠ 0 :=
mt eval_eq_zero_of_eval₂_denom_eq_zero h
@@ -1808,58 +1520,28 @@ theorem eval₂_denom_ne_zero {x : RatFunc K} (h : eval f a x ≠ 0) :
variable (f a)
-/- warning: ratfunc.eval_C -> RatFunc.eval_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_C RatFunc.eval_Cₓ'. -/
@[simp]
theorem eval_C {c : K} : eval f a (C c) = f c := by simp [eval]
#align ratfunc.eval_C RatFunc.eval_C
-/- warning: ratfunc.eval_X -> RatFunc.eval_X is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (RatFunc.X.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) a
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (RatFunc.X.{u2} K hfield)) a
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_X RatFunc.eval_Xₓ'. -/
@[simp]
theorem eval_X : eval f a X = a := by simp [eval]
#align ratfunc.eval_X RatFunc.eval_X
-/- warning: ratfunc.eval_zero -> RatFunc.eval_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K hfield)))))) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (OfNat.ofNat.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) 0 (Zero.toOfNat0.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instZeroRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))))) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_zero RatFunc.eval_zeroₓ'. -/
@[simp]
theorem eval_zero : eval f a 0 = 0 := by simp [eval]
#align ratfunc.eval_zero RatFunc.eval_zero
-/- warning: ratfunc.eval_one -> RatFunc.eval_one is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 1 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 1 (One.one.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasOne.{u1} K (Field.toCommRing.{u1} K hfield)))))) (OfNat.ofNat.{u2} L 1 (OfNat.mk.{u2} L 1 (One.one.{u2} L (AddMonoidWithOne.toOne.{u2} L (AddGroupWithOne.toAddMonoidWithOne.{u2} L (AddCommGroupWithOne.toAddGroupWithOne.{u2} L (Ring.toAddCommGroupWithOne.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (OfNat.ofNat.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) 1 (One.toOfNat1.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instOneRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))))) (OfNat.ofNat.{u1} L 1 (One.toOfNat1.{u1} L (Semiring.toOne.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_one RatFunc.eval_oneₓ'. -/
@[simp]
theorem eval_one : eval f a 1 = 1 := by simp [eval]
#align ratfunc.eval_one RatFunc.eval_one
-/- warning: ratfunc.eval_algebra_map -> RatFunc.eval_algebraMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_algebra_map RatFunc.eval_algebraMapₓ'. -/
@[simp]
theorem eval_algebraMap {S : Type _} [CommSemiring S] [Algebra S K[X]] (p : S) :
eval f a (algebraMap _ _ p) = (algebraMap _ K[X] p).eval₂ f a := by
simp [eval, IsScalarTower.algebraMap_apply S K[X] (RatFunc K)]
#align ratfunc.eval_algebra_map RatFunc.eval_algebraMap
-/- warning: ratfunc.eval_add -> RatFunc.eval_add is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield y)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K hfield))) x y)) (HAdd.hAdd.{u2, u2, u2} L L L (instHAdd.{u2} L (Distrib.toHasAdd.{u2} L (Ring.toDistrib.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a y)))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)} {y : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield y)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (HAdd.hAdd.{u2, u2, u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (instHAdd.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instAddRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))) x y)) (HAdd.hAdd.{u1, u1, u1} L L L (instHAdd.{u1} L (Distrib.toAdd.{u1} L (NonUnitalNonAssocSemiring.toDistrib.{u1} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} L (NonAssocRing.toNonUnitalNonAssocRing.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)))))))) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a y)))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_add RatFunc.eval_addₓ'. -/
/-- `eval` is an additive homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 1 (X / (X-1)) + eval _ 1 (-1 / (X-1)) = 0`
@@ -1882,12 +1564,6 @@ theorem eval_add {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
apply num_denom_add
#align ratfunc.eval_add RatFunc.eval_add
-/- warning: ratfunc.eval_mul -> RatFunc.eval_mul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield y)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasMul.{u1} K (Field.toCommRing.{u1} K hfield))) x y)) (HMul.hMul.{u2, u2, u2} L L L (instHMul.{u2} L (Distrib.toHasMul.{u2} L (Ring.toDistrib.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a y)))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)} {y : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield y)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (HMul.hMul.{u2, u2, u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (instHMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instMulRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))) x y)) (HMul.hMul.{u1, u1, u1} L L L (instHMul.{u1} L (NonUnitalNonAssocRing.toMul.{u1} L (NonAssocRing.toNonUnitalNonAssocRing.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)))))) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a y)))
-Case conversion may be inaccurate. Consider using '#align ratfunc.eval_mul RatFunc.eval_mulₓ'. -/
/-- `eval` is a multiplicative homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 0 X * eval _ 0 (1/X) = 0 ≠ 1 = eval _ 0 1 = eval _ 0 (X * 1/X)`.
@@ -1942,12 +1618,6 @@ theorem intDegree_one : intDegree (1 : RatFunc K) = 0 := by
#align ratfunc.int_degree_one RatFunc.intDegree_one
-/
-/- warning: ratfunc.int_degree_C -> RatFunc.intDegree_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (k : K), Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)) k)) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
-but is expected to have type
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (k : K), Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))))) (RatFunc.C.{u1} K _inst_1) k)) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
-Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_C RatFunc.intDegree_Cₓ'. -/
@[simp]
theorem intDegree_C (k : K) : intDegree (RatFunc.C k) = 0 := by
rw [int_degree, num_C, nat_degree_C, denom_C, nat_degree_one, sub_self]
@@ -1961,9 +1631,6 @@ theorem intDegree_X : intDegree (X : RatFunc K) = 1 := by
#align ratfunc.int_degree_X RatFunc.intDegree_X
-/
-/- warning: ratfunc.int_degree_polynomial -> RatFunc.intDegree_polynomial is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_polynomial RatFunc.intDegree_polynomialₓ'. -/
@[simp]
theorem intDegree_polynomial {p : K[X]} : intDegree (algebraMap K[X] (RatFunc K) p) = natDegree p :=
by
@@ -2021,12 +1688,6 @@ theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : R
#align ratfunc.nat_degree_num_mul_right_sub_nat_degree_denom_mul_left_eq_int_degree RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree
-/
-/- warning: ratfunc.int_degree_add_le -> RatFunc.intDegree_add_le is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)}, (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) y (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K _inst_1)))))) -> (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y) (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K _inst_1)))))) -> (LE.le.{0} Int Int.hasLe (RatFunc.intDegree.{u1} K _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y)) (LinearOrder.max.{0} Int Int.linearOrder (RatFunc.intDegree.{u1} K _inst_1 x) (RatFunc.intDegree.{u1} K _inst_1 y)))
-but is expected to have type
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)}, (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) y (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instZeroRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))))) -> (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instAddRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y) (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instZeroRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))))) -> (LE.le.{0} Int Int.instLEInt (RatFunc.intDegree.{u1} K _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instAddRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y)) (Max.max.{0} Int Int.instMaxInt (RatFunc.intDegree.{u1} K _inst_1 x) (RatFunc.intDegree.{u1} K _inst_1 y)))
-Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_add_le RatFunc.intDegree_add_leₓ'. -/
theorem intDegree_add_le {x y : RatFunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
intDegree (x + y) ≤ max (intDegree x) (intDegree y) :=
by
@@ -2051,12 +1712,6 @@ omit hring
variable {F : Type u} [Field F] (p q : F[X]) (f g : RatFunc F)
-/- warning: ratfunc.coe_alg_hom -> RatFunc.coeAlgHom is a dubious translation:
-lean 3 declaration is
- forall (F : Type.{u1}) [_inst_2 : Field.{u1} F], AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))))
-but is expected to have type
- forall (F : Type.{u1}) [_inst_2 : Field.{u1} F], AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_alg_hom RatFunc.coeAlgHomₓ'. -/
/-- The coercion `ratfunc F → laurent_series F` as bundled alg hom. -/
def coeAlgHom (F : Type u) [Field F] : RatFunc F →ₐ[F[X]] LaurentSeries F :=
liftAlgHom (Algebra.ofId _ _) <|
@@ -2064,152 +1719,80 @@ def coeAlgHom (F : Type u) [Field F] : RatFunc F →ₐ[F[X]] LaurentSeries F :=
Polynomial.algebraMap_hahnSeries_injective _
#align ratfunc.coe_alg_hom RatFunc.coeAlgHom
-/- warning: ratfunc.coe_to_laurent_series -> RatFunc.coeToLaurentSeries is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeriesₓ'. -/
instance coeToLaurentSeries : Coe (RatFunc F) (LaurentSeries F) :=
⟨coeAlgHom F⟩
#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeries
-/- warning: ratfunc.coe_def -> RatFunc.coe_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_def RatFunc.coe_defₓ'. -/
theorem coe_def : (f : LaurentSeries F) = coeAlgHom F f :=
rfl
#align ratfunc.coe_def RatFunc.coe_def
-/- warning: ratfunc.coe_num_denom -> RatFunc.coe_num_denom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_num_denom RatFunc.coe_num_denomₓ'. -/
theorem coe_num_denom : (f : LaurentSeries F) = f.num / f.den :=
liftAlgHom_apply _ _ f
#align ratfunc.coe_num_denom RatFunc.coe_num_denom
-/- warning: ratfunc.coe_injective -> RatFunc.coe_injective is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Function.Injective.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Function.Injective.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1)
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_injective RatFunc.coe_injectiveₓ'. -/
theorem coe_injective : Function.Injective (coe : RatFunc F → LaurentSeries F) :=
liftAlgHom_injective _ (Polynomial.algebraMap_hahnSeries_injective _)
#align ratfunc.coe_injective RatFunc.coe_injective
-/- warning: ratfunc.coe_apply -> RatFunc.coe_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_apply RatFunc.coe_applyₓ'. -/
@[simp, norm_cast]
theorem coe_apply : coeAlgHom F f = f :=
rfl
#align ratfunc.coe_apply RatFunc.coe_apply
-/- warning: ratfunc.coe_zero -> RatFunc.coe_zero is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasZero.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 0 (OfNat.mk.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 0 (Zero.zero.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))))))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instZeroRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) 0 (Zero.toOfNat0.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_zero RatFunc.coe_zeroₓ'. -/
@[simp, norm_cast]
theorem coe_zero : ((0 : RatFunc F) : LaurentSeries F) = 0 :=
(coeAlgHom F).map_zero
#align ratfunc.coe_zero RatFunc.coe_zero
-/- warning: ratfunc.coe_one -> RatFunc.coe_one is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (OfNat.mk.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (One.one.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasOne.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 1 (OfNat.mk.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 1 (One.one.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasOne.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (AddMonoidWithOne.toOne.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (One.toOfNat1.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instOneRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) 1 (One.toOfNat1.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instOneHahnSeriesToPartialOrder.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toOne.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_one RatFunc.coe_oneₓ'. -/
@[simp, norm_cast]
theorem coe_one : ((1 : RatFunc F) : LaurentSeries F) = 1 :=
(coeAlgHom F).map_one
#align ratfunc.coe_one RatFunc.coe_one
-/- warning: ratfunc.coe_add -> RatFunc.coe_add is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHAdd.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasAdd.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HAdd.hAdd.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHAdd.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasAdd.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHAdd.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instAddRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HAdd.hAdd.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHAdd.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instAddHahnSeriesToZero.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (Ring.toAddGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_add RatFunc.coe_addₓ'. -/
@[simp, norm_cast]
theorem coe_add : ((f + g : RatFunc F) : LaurentSeries F) = f + g :=
(coeAlgHom F).map_add _ _
#align ratfunc.coe_add RatFunc.coe_add
-/- warning: ratfunc.coe_sub -> RatFunc.coe_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_sub RatFunc.coe_subₓ'. -/
@[simp, norm_cast]
theorem coe_sub : ((f - g : RatFunc F) : LaurentSeries F) = f - g :=
(coeAlgHom F).map_sub _ _
#align ratfunc.coe_sub RatFunc.coe_sub
-/- warning: ratfunc.coe_neg -> RatFunc.coe_neg is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (Neg.neg.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasNeg.{u1} F (Field.toCommRing.{u1} F _inst_1)) f)) (Neg.neg.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (SubNegMonoid.toHasNeg.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (AddGroup.toSubNegMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.addGroup.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddGroupWithOne.toAddGroup.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (Neg.neg.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instNegRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) f)) (Neg.neg.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Ring.toNeg.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instRingHahnSeriesToPartialOrderToZeroToMonoidWithZeroToSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_neg RatFunc.coe_negₓ'. -/
@[simp, norm_cast]
theorem coe_neg : ((-f : RatFunc F) : LaurentSeries F) = -f :=
(coeAlgHom F).map_neg _
#align ratfunc.coe_neg RatFunc.coe_neg
-/- warning: ratfunc.coe_mul -> RatFunc.coe_mul is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasMul.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HMul.hMul.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHMul.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasMul.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instMulRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HMul.hMul.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instMulHahnSeriesToPartialOrderToZeroToMulZeroClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_mul RatFunc.coe_mulₓ'. -/
@[simp, norm_cast]
theorem coe_mul : ((f * g : RatFunc F) : LaurentSeries F) = f * g :=
(coeAlgHom F).map_mul _ _
#align ratfunc.coe_mul RatFunc.coe_mul
-/- warning: ratfunc.coe_pow -> RatFunc.coe_pow is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (n : Nat), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HPow.hPow.{u1, 0, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHPow.{u1, 0} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (Monoid.Pow.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) f n)) (HPow.hPow.{u1, 0, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) Nat (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHPow.{u1, 0} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) Nat (Monoid.Pow.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Ring.toMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.ring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) n)
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (n : Nat), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HPow.hPow.{u1, 0, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHPow.{u1, 0} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (Monoid.Pow.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toMonoidWithZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) f n)) (HPow.hPow.{u1, 0, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) Nat (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHPow.{u1, 0} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) Nat (Monoid.Pow.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toMonoidWithZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) n)
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_pow RatFunc.coe_powₓ'. -/
@[simp, norm_cast]
theorem coe_pow (n : ℕ) : ((f ^ n : RatFunc F) : LaurentSeries F) = f ^ n :=
(coeAlgHom F).map_pow _ _
#align ratfunc.coe_pow RatFunc.coe_pow
-/- warning: ratfunc.coe_div -> RatFunc.coe_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_div RatFunc.coe_divₓ'. -/
@[simp, norm_cast]
theorem coe_div :
((f / g : RatFunc F) : LaurentSeries F) = (f : LaurentSeries F) / (g : LaurentSeries F) :=
map_div₀ (coeAlgHom F) _ _
#align ratfunc.coe_div RatFunc.coe_div
-/- warning: ratfunc.coe_C -> RatFunc.coe_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_C RatFunc.coe_Cₓ'. -/
@[simp, norm_cast]
theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r := by
rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_C, coe_C, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_C RatFunc.coe_C
-/- warning: ratfunc.coe_smul -> RatFunc.coe_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_smul RatFunc.coe_smulₓ'. -/
-- TODO: generalize over other modules
@[simp, norm_cast]
theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • f := by
rw [smul_eq_C_mul, ← C_mul_eq_smul, coe_mul, coe_C]
#align ratfunc.coe_smul RatFunc.coe_smul
-/- warning: ratfunc.coe_X -> RatFunc.coe_X is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.coe_X RatFunc.coe_Xₓ'. -/
@[simp, norm_cast]
theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
rw [coe_num_denom, num_X, denom_X, coe_coe, Polynomial.coe_X, coe_X, coe_coe, Polynomial.coe_one,
@@ -2219,9 +1802,6 @@ theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
instance : Algebra (RatFunc F) (LaurentSeries F) :=
RingHom.toAlgebra (coeAlgHom F).toRingHom
-/- warning: ratfunc.algebra_map_apply_div -> RatFunc.algebraMap_apply_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_divₓ'. -/
theorem algebraMap_apply_div :
algebraMap (RatFunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap F[X] (LaurentSeries F) p / algebraMap _ _ q :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -526,10 +526,7 @@ but is expected to have type
forall {K : Type.{u2}} [hring : CommRing.{u2} K] {R : Type.{u1}} [_inst_1 : SMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))] (c : R) (p : RatFunc.{u2} K hring), Eq.{succ u2} (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (RatFunc.toFractionRing.{u2} K hring (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R _inst_1)) c p)) (HSMul.hSMul.{u1, u2, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (instHSMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) _inst_1) c (RatFunc.toFractionRing.{u2} K hring p))
Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smulₓ'. -/
theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : RatFunc K) :
- toFractionRing (c • p) = c • toFractionRing p :=
- by
- cases p
- rw [← of_fraction_ring_smul]
+ toFractionRing (c • p) = c • toFractionRing p := by cases p; rw [← of_fraction_ring_smul]
#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smul
/- warning: ratfunc.smul_eq_C_smul -> RatFunc.smul_eq_C_smul is a dubious translation:
@@ -826,10 +823,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
rw [← of_fraction_ring_one, ← Localization.mk_one, lift_on_of_fraction_ring_mk]
simp only [map_one, Submonoid.coe_one, div_one]
map_mul' x y := by
- cases x
- cases y
- induction' x with p q
- induction' y with p' q'
+ cases x; cases y; induction' x with p q; induction' y with p' q'
· rw [← of_fraction_ring_mul, Localization.mk_mul]
simp only [lift_on_of_fraction_ring_mk, div_mul_div_comm, map_mul, Submonoid.coe_mul]
· rfl
@@ -878,10 +872,7 @@ def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc
simp only [MonoidWithZeroHom.toFun_eq_coe]
cases subsingleton_or_nontrivial R
· rw [Subsingleton.elim (x + y) y, Subsingleton.elim x 0, map_zero, zero_add]
- cases x
- cases y
- induction' x with p q
- induction' y with p' q'
+ cases x; cases y; induction' x with p q; induction' y with p' q'
· rw [← of_fraction_ring_add, Localization.add_mk]
simp only [RingHom.toMonoidWithZeroHom_eq_coe,
lift_monoid_with_zero_hom_apply_of_fraction_ring_mk]
@@ -997,10 +988,8 @@ theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X]
<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply RatFunc.algebraMap_applyₓ'. -/
theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
- algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 :=
- by
- rw [← mk_eq_div]
- rfl
+ algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 := by
+ rw [← mk_eq_div]; rfl
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
/- warning: ratfunc.map_apply_div_ne_zero -> RatFunc.map_apply_div_ne_zero is a dubious translation:
@@ -1176,9 +1165,7 @@ instance : IsFractionRing K[X] (RatFunc K)
(to_fraction_ring_ring_equiv K).symm.Injective.eq_iff.trans
(IsLocalization.eq_iff_exists _ _)
surj := by
- rintro ⟨z⟩
- convert IsLocalization.surj K[X]⁰ z
- ext ⟨x, y⟩
+ rintro ⟨z⟩; convert IsLocalization.surj K[X]⁰ z; ext ⟨x, y⟩
simp only [← of_fraction_ring_algebra_map, Function.comp_apply, ← of_fraction_ring_mul]
variable {K}
@@ -2245,9 +2232,7 @@ theorem algebraMap_apply_div :
#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_div
instance : IsScalarTower F[X] (RatFunc F) (LaurentSeries F) :=
- ⟨fun x y z => by
- ext
- simp⟩
+ ⟨fun x y z => by ext; simp⟩
end LaurentSeries
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit ec80bb1545ee17237ac0961a91bb2072780643c9
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.Polynomial.Content
/-!
# The field of rational functions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines the field `ratfunc K` of rational functions over a field `K`,
and shows it is the field of fractions of `K[X]`.
@@ -140,10 +143,7 @@ theorem toFractionRing_injective : Function.Injective (toFractionRing : _ → Fr
-/
/- warning: ratfunc.lift_on -> RatFunc.liftOn is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}}, (RatFunc.{u1} K hring) -> (forall (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) -> P)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}}, (RatFunc.{u1} K hring) -> (forall (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) -> P)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on RatFunc.liftOnₓ'. -/
/-- Non-dependent recursion principle for `ratfunc K`:
To construct a term of `P : Sort*` out of `x : ratfunc K`,
@@ -170,10 +170,7 @@ protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X
#align ratfunc.lift_on RatFunc.liftOn
/- warning: ratfunc.lift_on_of_fraction_ring_mk -> RatFunc.liftOn_ofFractionRing_mk is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}} (n : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P) (H : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d)) f H) (f n ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) d))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}} (n : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (d : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P) (H : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d)) f H) (f n (Subtype.val.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Set.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Set.instMembershipSet.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) x (SetLike.coe.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) d))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mkₓ'. -/
theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ p q : K[X], P)
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
@@ -199,10 +196,7 @@ protected irreducible_def mk (p q : K[X]) : RatFunc K :=
-/
/- warning: ratfunc.mk_eq_div' -> RatFunc.mk_eq_div' is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) q) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'ₓ'. -/
theorem mk_eq_div' (p q : K[X]) :
RatFunc.mk p q = ofFractionRing (algebraMap _ _ p / algebraMap _ _ q) := by unfold RatFunc.mk
@@ -215,10 +209,7 @@ theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
-/
/- warning: ratfunc.mk_coe_def -> RatFunc.mk_coe_def is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) q)) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (Subtype.val.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Set.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Set.instMembershipSet.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) x (SetLike.coe.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) q)) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_coe_def RatFunc.mk_coe_defₓ'. -/
theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p q) := by
@@ -226,10 +217,7 @@ theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
#align ratfunc.mk_coe_def RatFunc.mk_coe_def
/- warning: ratfunc.mk_def_of_mem -> RatFunc.mk_def_of_mem is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) q hq)))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) q hq)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_memₓ'. -/
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p ⟨q, hq⟩) := by
@@ -237,10 +225,7 @@ theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
/- warning: ratfunc.mk_def_of_ne -> RatFunc.mk_def_of_ne is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) q (Iff.mpr (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.noZeroDivisors.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q) hq))))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) q (Iff.mpr (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.instNoZeroDivisorsPolynomialMul'Zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q) hq))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_neₓ'. -/
theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
@@ -249,10 +234,7 @@ theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_ne
/- warning: ratfunc.mk_eq_localization_mk -> RatFunc.mk_eq_localization_mk is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) q (Iff.mpr (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))) (Polynomial.noZeroDivisors.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q) hq))))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) q (Iff.mpr (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))) (Polynomial.instNoZeroDivisorsPolynomialMul'Zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q) hq))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mkₓ'. -/
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
@@ -261,10 +243,7 @@ theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
/- warning: ratfunc.mk_one' -> RatFunc.mk_one' is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (RatFunc.ofFractionRing.{u1} K hring (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.ofFractionRing.{u1} K hring (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one' RatFunc.mk_one'ₓ'. -/
theorem mk_one' (p : K[X]) : RatFunc.mk p 1 = ofFractionRing (algebraMap _ _ p) := by
rw [← IsLocalization.mk'_one (FractionRing K[X]) p, ← mk_coe_def, Submonoid.coe_one]
@@ -280,10 +259,7 @@ theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
-/
/- warning: ratfunc.lift_on_mk -> RatFunc.liftOn_mk is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (hq' : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.mk.{u1} K hring hdomain p q) f H) (f p q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (hq' : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.mk.{u1} K hring hdomain p q) f H) (f p q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_mk RatFunc.liftOn_mkₓ'. -/
theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
@@ -557,10 +533,7 @@ theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : RatFunc K)
#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smul
/- warning: ratfunc.smul_eq_C_smul -> RatFunc.smul_eq_C_smul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] (x : RatFunc.{u1} K hring) (r : K), Eq.{succ u1} (RatFunc.{u1} K hring) (SMul.smul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring K (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (SMulZeroClass.toHasSmul.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.smulZeroClass.{u1, u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) K (DistribSMul.toSmulZeroClass.{u1, u1} K K (AddMonoid.toAddZeroClass.{u1} K (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (Polynomial.isScalarTower_right.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) r x) (SMul.smul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (SMulWithZero.toSmulZeroClass.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (MulActionWithZero.toSMulWithZero.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (Module.toMulActionWithZero.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (IsScalarTower.right.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) r) x)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] (x : RatFunc.{u1} K hring) (r : K), Eq.{succ u1} (RatFunc.{u1} K hring) (HSMul.hSMul.{u1, u1, u1} K (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSMul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.instSMulRatFunc.{u1, u1} K hring K (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (Algebra.toSMul.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} K hring) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.isScalarTower_right.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) r x) (HSMul.hSMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSMul.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (RatFunc.{u1} K hring) (RatFunc.instSMulRatFunc.{u1, u1} K hring ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Algebra.toSMul.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Algebra.id.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsScalarTower.right.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Algebra.id.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (Polynomial.C.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smulₓ'. -/
theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x :=
by
@@ -581,10 +554,7 @@ variable [htower : IsScalarTower R K[X] K[X]]
include htower
/- warning: ratfunc.mk_smul -> RatFunc.mk_smul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : Monoid.{u2} R] [_inst_2 : DistribMulAction.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))] [htower : IsScalarTower.{u2, u1, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) (Mul.toSMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2)))] (c : R) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain (SMul.smul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) c p) q) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R (Localization.hasSmul.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) R (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) htower)) c (RatFunc.mk.{u1} K hring hdomain p q))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : Monoid.{u1} R] [_inst_2 : DistribMulAction.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))] [htower : IsScalarTower.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))] (c : R) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u2} (RatFunc.{u2} K hring) (RatFunc.mk.{u2} K hring hdomain (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p) q) (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R (Localization.instSMulLocalization.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))))) R (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) htower))) c (RatFunc.mk.{u2} K hring hdomain p q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_smul RatFunc.mk_smulₓ'. -/
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q :=
by
@@ -738,10 +708,7 @@ variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R]
omit hring
/- warning: ratfunc.map -> RatFunc.map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) -> (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))))
-but is expected to have type
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) -> (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map RatFunc.mapₓ'. -/
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
@@ -778,10 +745,7 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
#align ratfunc.map RatFunc.map
/- warning: ratfunc.map_apply_of_fraction_ring_mk -> RatFunc.map_apply_ofFractionRing_mk is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))), Eq.{succ u2} (RatFunc.{u2} S _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ) (RatFunc.ofFractionRing.{u1} R _inst_3 (Localization.mk.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.commRing.{u1} R _inst_3)) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.commRing.{u1} R _inst_3))))) n d))) (RatFunc.ofFractionRing.{u2} S _inst_4 (Localization.mk.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)) (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ n) (Subtype.mk.{succ u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (fun (x : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) => Membership.Mem.{u2, u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Submonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Submonoid.setLike.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeSubtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) d)) (hφ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeSubtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) d) (Subtype.prop.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) d)))))
-but is expected to have type
- forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : MonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (RatFunc.ofFractionRing.{u1} S _inst_4 (Localization.mk.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)) (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ n) (Subtype.mk.{succ u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (fun (x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) => Membership.mem.{u1, u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Submonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)))))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) (hφ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d) (Subtype.prop.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) d)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mkₓ'. -/
theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
(hφ : R[X]⁰ ≤ S[X]⁰.comap φ) (n : R[X]) (d : R[X]⁰) :
@@ -793,10 +757,7 @@ theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mk
/- warning: ratfunc.map_injective -> RatFunc.map_injective is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))), (Function.Injective.{succ u1, succ u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ)) -> (Function.Injective.{succ u1, succ u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)))
-but is expected to have type
- forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : MonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))), (Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ)) -> (Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_injective RatFunc.map_injectiveₓ'. -/
theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ)
(hf : Function.Injective φ) : Function.Injective (map φ hφ) :=
@@ -811,10 +772,7 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
#align ratfunc.map_injective RatFunc.map_injective
/- warning: ratfunc.map_ring_hom -> RatFunc.mapRingHom is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) -> (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))
-but is expected to have type
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) -> (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_ring_hom RatFunc.mapRingHomₓ'. -/
/-- Lift a ring homomorphism that maps polynomials `φ : R[X] →+* S[X]`
to a `ratfunc R →+* ratfunc S`,
@@ -840,10 +798,7 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
#align ratfunc.map_ring_hom RatFunc.mapRingHom
/- warning: ratfunc.coe_map_ring_hom_eq_coe_map -> RatFunc.coe_mapRingHom_eq_coe_map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))), Eq.{max (succ u1) (succ u2)} ((fun (_x : RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (RatFunc.mapRingHom.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) (RatFunc.mapRingHom.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ hφ))
-but is expected to have type
- forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : RingHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))), Eq.{max (succ u2) (succ u1)} (forall (a : RatFunc.{u2} R _inst_3), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))))) (RatFunc.mapRingHom.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 (RingHomClass.toMonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) _inst_5) φ hφ))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_mapₓ'. -/
theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) :
(mapRingHom φ hφ : RatFunc R → RatFunc S) = map φ hφ :=
@@ -851,10 +806,7 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
/- warning: ratfunc.lift_monoid_with_zero_hom -> RatFunc.liftMonoidWithZeroHom is a dubious translation:
-lean 3 declaration is
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) -> (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))
-but is expected to have type
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) -> (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHomₓ'. -/
-- TODO: Generalize to `fun_like` classes,
/-- Lift an monoid with zero homomorphism `R[X] →*₀ G₀` to a `ratfunc R →*₀ G₀`
@@ -889,10 +841,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
/- warning: ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk -> RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk is a dubious translation:
-lean 3 declaration is
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (d : coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))), Eq.{succ u1} G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (RatFunc.{u2} R _inst_3) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} G₀ G₀ G₀ (instHDiv.{u1} G₀ (DivInvMonoid.toHasDiv.{u1} G₀ (GroupWithZero.toDivInvMonoid.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ n) (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeSubtype.{succ u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) => Membership.Mem.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) d)))
-but is expected to have type
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ n) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mkₓ'. -/
theorem liftMonoidWithZeroHom_apply_ofFractionRing_mk (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ)
(n : R[X]) (d : R[X]⁰) :
@@ -901,10 +850,7 @@ theorem liftMonoidWithZeroHom_apply_ofFractionRing_mk (φ : R[X] →*₀ G₀) (
#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk
/- warning: ratfunc.lift_monoid_with_zero_hom_injective -> RatFunc.liftMonoidWithZeroHom_injective is a dubious translation:
-lean 3 declaration is
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (GroupWithZero.noZeroDivisors.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (RatFunc.{u2} R _inst_3) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ'))
-but is expected to have type
- forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, max u1 u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (GroupWithZero.noZeroDivisors.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) G₀ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ'))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injectiveₓ'. -/
theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ G₀⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
@@ -922,10 +868,7 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injective
/- warning: ratfunc.lift_ring_hom -> RatFunc.liftRingHom is a dubious translation:
-lean 3 declaration is
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) -> (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))
-but is expected to have type
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) -> (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom RatFunc.liftRingHomₓ'. -/
/-- Lift an injective ring homomorphism `R[X] →+* L` to a `ratfunc R →+* L`
by mapping both the numerator and denominator and quotienting them. -/
@@ -953,10 +896,7 @@ def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc
#align ratfunc.lift_ring_hom RatFunc.liftRingHom
/- warning: ratfunc.lift_ring_hom_apply_of_fraction_ring_mk -> RatFunc.liftRingHom_apply_ofFractionRing_mk is a dubious translation:
-lean 3 declaration is
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (d : coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))), Eq.{succ u1} L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (RatFunc.{u2} R _inst_3) -> L) (RingHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} L L L (instHDiv.{u1} L (DivInvMonoid.toHasDiv.{u1} L (DivisionRing.toDivInvMonoid.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ n) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeSubtype.{succ u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) => Membership.Mem.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) d)))
-but is expected to have type
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ n) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mkₓ'. -/
theorem liftRingHom_apply_ofFractionRing_mk (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) (n : R[X])
(d : R[X]⁰) : liftRingHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
@@ -964,10 +904,7 @@ theorem liftRingHom_apply_ofFractionRing_mk (φ : R[X] →+* L) (hφ : R[X]⁰
#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mk
/- warning: ratfunc.lift_ring_hom_injective -> RatFunc.liftRingHom_injective is a dubious translation:
-lean 3 declaration is
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidWithZeroHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)) (Field.isDomain.{u1} L _inst_2)) (RingHomClass.toMonoidWithZeroHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (RatFunc.{u2} R _inst_3) -> L) (RingHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ'))
-but is expected to have type
- forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, max u1 u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)) (Field.isDomain.{u1} L _inst_2)) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) L (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ'))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_injective RatFunc.liftRingHom_injectiveₓ'. -/
theorem liftRingHom_injective [Nontrivial R] (φ : R[X] →+* L) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
@@ -1023,20 +960,14 @@ instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
variable {K}
/- warning: ratfunc.mk_one -> RatFunc.mk_one is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one RatFunc.mk_oneₓ'. -/
theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
#align ratfunc.mk_one RatFunc.mk_one
/- warning: ratfunc.of_fraction_ring_algebra_map -> RatFunc.ofFractionRing_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMapₓ'. -/
theorem ofFractionRing_algebraMap (x : K[X]) :
ofFractionRing (algebraMap _ (FractionRing K[X]) x) = algebraMap _ _ x := by
@@ -1044,10 +975,7 @@ theorem ofFractionRing_algebraMap (x : K[X]) :
#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMap
/- warning: ratfunc.mk_eq_div -> RatFunc.mk_eq_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div RatFunc.mk_eq_divₓ'. -/
@[simp]
theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap _ _ q := by
@@ -1055,10 +983,7 @@ theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap
#align ratfunc.mk_eq_div RatFunc.mk_eq_div
/- warning: ratfunc.div_smul -> RatFunc.div_smul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : Monoid.{u2} R] [_inst_2 : DistribMulAction.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))] [_inst_3 : IsScalarTower.{u2, u1, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) (Mul.toSMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2)))] (c : R) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (SMul.smul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) c p)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R (Localization.hasSmul.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) R (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) _inst_3)) c (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : Monoid.{u1} R] [_inst_2 : DistribMulAction.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))] [_inst_3 : IsScalarTower.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))] (c : R) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q)) (HSMul.hSMul.{u1, u2, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHSMul.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (RatFunc.instSMulRatFunc.{u2, u1} K hring R (Localization.instSMulLocalization.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))))) R (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) _inst_3))) c (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.div_smul RatFunc.div_smulₓ'. -/
@[simp]
theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X] K[X]] (c : R)
@@ -1069,10 +994,7 @@ theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X]
#align ratfunc.div_smul RatFunc.div_smul
/- warning: ratfunc.algebra_map_apply -> RatFunc.algebraMap_apply is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Algebra.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] (x : R), Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => R -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u2, u1} R (RatFunc.{u1} K hring) _inst_1 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u2} K hring hdomain R _inst_1 _inst_2)) x) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => R -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (algebraMap.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_2) x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Algebra.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))] (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) x) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u1, u2} R (RatFunc.{u2} K hring) _inst_1 (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u1} K hring hdomain R _inst_1 _inst_2)) x) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) a) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (OfNat.ofNat.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.one.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) x) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) a) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (OfNat.ofNat.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.one.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply RatFunc.algebraMap_applyₓ'. -/
theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 :=
@@ -1082,10 +1004,7 @@ theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R)
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
/- warning: ratfunc.map_apply_div_ne_zero -> RatFunc.map_apply_div_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F hring _inst_1 _inst_3 φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ p)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ q))))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), (Ne.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) q (OfNat.ofNat.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) 0 (Zero.toOfNat0.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.zero.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F hring _inst_1 _inst_3 φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ q)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ q))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zeroₓ'. -/
theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
@@ -1097,10 +1016,7 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
/- warning: ratfunc.map_apply_div -> RatFunc.map_apply_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidWithZeroHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F hring _inst_1 (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3) φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3)))) φ p)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3)))) φ q)))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidWithZeroHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F hring _inst_1 (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3) φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ q)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ q)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div RatFunc.map_apply_divₓ'. -/
@[simp]
theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
@@ -1116,10 +1032,7 @@ theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHo
#align ratfunc.map_apply_div RatFunc.map_apply_div
/- warning: ratfunc.lift_monoid_with_zero_hom_apply_div -> RatFunc.liftMonoidWithZeroHom_apply_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} [_inst_1 : CommGroupWithZero.{u2} L] (φ : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u2 u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u1, u2} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) φ (nonZeroDivisors.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (RatFunc.{u1} K hring) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u2, u1} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (GroupWithZero.toDivInvMonoid.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ p) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ q))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {L : Type.{u1}} [_inst_1 : CommGroupWithZero.{u1} L] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) φ (nonZeroDivisors.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) (fun (_x : RatFunc.{u2} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (MulOneClass.toMul.{u2} (RatFunc.{u2} K hring) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ p) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_divₓ'. -/
@[simp]
theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
@@ -1133,10 +1046,7 @@ theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_div
/- warning: ratfunc.lift_ring_hom_apply_div -> RatFunc.liftRingHom_apply_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (φ : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (RingHom.ringHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (RatFunc.{u1} K hring) -> L) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.liftRingHom.{u2, u1} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ p) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ q))
-but is expected to have type
- forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (φ : RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) (fun (_x : RatFunc.{u2} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (RatFunc.liftRingHom.{u1, u2} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ p) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_divₓ'. -/
@[simp]
theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
@@ -1147,10 +1057,7 @@ theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ :
variable (K)
/- warning: ratfunc.of_fraction_ring_comp_algebra_map -> RatFunc.ofFractionRing_comp_algebraMap is a dubious translation:
-lean 3 declaration is
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (Function.comp.{succ u1, succ u1, succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
-but is expected to have type
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (RatFunc.{u1} K hring)) (Function.comp.{succ u1, succ u1, succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMapₓ'. -/
theorem ofFractionRing_comp_algebraMap :
ofFractionRing ∘ algebraMap K[X] (FractionRing K[X]) = algebraMap _ _ :=
@@ -1158,10 +1065,7 @@ theorem ofFractionRing_comp_algebraMap :
#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMap
/- warning: ratfunc.algebra_map_injective -> RatFunc.algebraMap_injective is a dubious translation:
-lean 3 declaration is
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Function.Injective.{succ u1, succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
-but is expected to have type
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Function.Injective.{succ u1, succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_injective RatFunc.algebraMap_injectiveₓ'. -/
theorem algebraMap_injective : Function.Injective (algebraMap K[X] (RatFunc K)) :=
by
@@ -1170,10 +1074,7 @@ theorem algebraMap_injective : Function.Injective (algebraMap K[X] (RatFunc K))
#align ratfunc.algebra_map_injective RatFunc.algebraMap_injective
/- warning: ratfunc.algebra_map_eq_zero_iff -> RatFunc.algebraMap_eq_zero_iff is a dubious translation:
-lean 3 declaration is
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, Iff (Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} (RatFunc.{u1} K hring) 0 (OfNat.mk.{u1} (RatFunc.{u1} K hring) 0 (Zero.zero.{u1} (RatFunc.{u1} K hring) (RatFunc.hasZero.{u1} K hring))))) (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))
-but is expected to have type
- forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (RatFunc.instZeroRatFunc.{u1} K hring)))) (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_eq_zero_iff RatFunc.algebraMap_eq_zero_iffₓ'. -/
@[simp]
theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0 ↔ x = 0 :=
@@ -1184,10 +1085,7 @@ theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0
variable {K}
/- warning: ratfunc.algebra_map_ne_zero -> RatFunc.algebraMap_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} (RatFunc.{u1} K hring) 0 (OfNat.mk.{u1} (RatFunc.{u1} K hring) 0 (Zero.zero.{u1} (RatFunc.{u1} K hring) (RatFunc.hasZero.{u1} K hring)))))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (RatFunc.instZeroRatFunc.{u1} K hring))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zeroₓ'. -/
theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (RatFunc K) x ≠ 0 :=
mt (algebraMap_eq_zero_iff K).mp hx
@@ -1199,10 +1097,7 @@ variable {L R S : Type _} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [
[Algebra S L] [Algebra S R[X]] (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
/- warning: ratfunc.map_alg_hom -> RatFunc.mapAlgHom is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_2) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instFieldRatFunc.{u2} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_alg_hom RatFunc.mapAlgHomₓ'. -/
/-- Lift an algebra homomorphism that maps polynomials `φ : K[X] →ₐ[S] R[X]`
to a `ratfunc K →ₐ[S] ratfunc R`,
@@ -1216,10 +1111,7 @@ def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
#align ratfunc.map_alg_hom RatFunc.mapAlgHom
/- warning: ratfunc.coe_map_alg_hom_eq_coe_map -> RatFunc.coe_mapAlgHom_eq_coe_map is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))))))), Eq.{max (succ u1) (succ u2)} ((fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) (RatFunc.mapAlgHom.{u1, u2, u3} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) (RatFunc.mapAlgHom.{u1, u2, u3} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) (RatFunc.map.{u1, u2, max u1 u2} K R (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) hring _inst_2 (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ hφ))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u1}} {S : Type.{u2}} [_inst_2 : CommRing.{u1} R] [_inst_3 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))] [_inst_4 : CommSemiring.{u2} S] [_inst_5 : Algebra.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_7 : Algebra.{u2, u1} S (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))] (φ : AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u1, max u3 u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))))) (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))))))), Eq.{max (succ u3) (succ u1)} (forall (a : RatFunc.{u3} K hring), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) a) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (SMulZeroClass.toSMul.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u2, u1} S (RatFunc.{u1} R _inst_2) (AddMonoid.toZero.{u1} (RatFunc.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S (RatFunc.{u1} R _inst_2) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))))) (DistribMulAction.toDistribSMul.{u2, u1} S (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7) (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) (AlgHom.algHomClass.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)))))) (RatFunc.mapAlgHom.{u3, u1, u2} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2)))))) (MonoidHom.monoidHomClass.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))))) (RatFunc.map.{u3, u1, max u3 u1} K R (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) hring _inst_2 (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7))) φ hφ))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_mapₓ'. -/
theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
(mapAlgHom φ hφ : RatFunc K → RatFunc R) = map φ hφ :=
@@ -1227,10 +1119,7 @@ theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R
#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_map
/- warning: ratfunc.lift_alg_hom -> RatFunc.liftAlgHom is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom RatFunc.liftAlgHomₓ'. -/
/-- Lift an injective algebra homomorphism `K[X] →ₐ[S] L` to a `ratfunc K →ₐ[S] L`
by mapping both the numerator and denominator and quotienting them. -/
@@ -1242,10 +1131,7 @@ def liftAlgHom : RatFunc K →ₐ[S] L :=
#align ratfunc.lift_alg_hom RatFunc.liftAlgHom
/- warning: ratfunc.lift_alg_hom_apply_of_fraction_ring_mk -> RatFunc.liftAlgHom_apply_ofFractionRing_mk is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (n : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ n) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) d)))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u1} S] [_inst_5 : Algebra.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (n : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (d : Subtype.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (SetLike.instMembership.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) x (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) (RatFunc.ofFractionRing.{u3} K hring (Localization.mk.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring)) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring))))) n d))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u2, u1} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (RatFunc.ofFractionRing.{u3} K hring (Localization.mk.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring)) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring))))) n d))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) (Subtype.val.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Set.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Set.instMembershipSet.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) x (SetLike.coe.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ n) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ (Subtype.val.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Set.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Set.instMembershipSet.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) x (SetLike.coe.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) d)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mkₓ'. -/
theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
liftAlgHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
@@ -1253,10 +1139,7 @@ theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mk
/- warning: ratfunc.lift_alg_hom_injective -> RatFunc.liftAlgHom_injective is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : Function.Injective.{succ u1, succ u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ)) (hφ' : optParam.{0} (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6)))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (IsDomain.to_noZeroDivisors.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)) (Field.isDomain.{u2} L _inst_1)) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ hφ)), Function.Injective.{succ u1, succ u2} (RatFunc.{u1} K hring) L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ'))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u1}} {S : Type.{u2}} [_inst_1 : Field.{u1} L] [_inst_4 : CommSemiring.{u2} S] [_inst_5 : Algebra.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))] (φ : AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (hφ : Function.Injective.{succ u3, succ u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u2, u1} S L (AddMonoid.toZero.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S L (AddMonoid.toAddZeroClass.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u1} S L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))))) φ)) (hφ' : optParam.{0} (LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u1, max u3 u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u3, max u3 u1, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)) (Field.isDomain.{u1} L _inst_1)) (RingHomClass.toMonoidWithZeroHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))) φ hφ)), Function.Injective.{succ u3, succ u1} (RatFunc.{u3} K hring) L (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u2, u1} S L (AddMonoid.toZero.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S L (AddMonoid.toAddZeroClass.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u1} S L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u1, u2} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ'))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injectiveₓ'. -/
theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective φ)
(hφ' : K[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
@@ -1265,10 +1148,7 @@ theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective
#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injective
/- warning: ratfunc.lift_alg_hom_apply_div -> RatFunc.liftAlgHom_apply_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ p) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ q))
-but is expected to have type
- forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u1} S] [_inst_5 : Algebra.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u2, u1} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ p) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_divₓ'. -/
@[simp]
theorem liftAlgHom_apply_div (p q : K[X]) :
@@ -1304,10 +1184,7 @@ instance : IsFractionRing K[X] (RatFunc K)
variable {K}
/- warning: ratfunc.lift_on_div -> RatFunc.liftOn_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (hq' : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (hq' : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_div RatFunc.liftOn_divₓ'. -/
@[simp]
theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
@@ -1319,10 +1196,7 @@ theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
#align ratfunc.lift_on_div RatFunc.liftOn_div
/- warning: ratfunc.lift_on'_div -> RatFunc.liftOn'_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {a : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) a (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{u2} P (f (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) a p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) a q)) (f p q))), Eq.{u2} P (RatFunc.liftOn'.{u1, u2} K hring hdomain P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {a : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) a (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{u2} P (f (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) a p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) a q)) (f p q))), Eq.{u2} P (RatFunc.liftOn'.{u1, u2} K hring hdomain P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on'_div RatFunc.liftOn'_divₓ'. -/
@[simp]
theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1) (H) :
@@ -1333,10 +1207,7 @@ theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀
#align ratfunc.lift_on'_div RatFunc.liftOn'_div
/- warning: ratfunc.induction_on -> RatFunc.induction_on is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : (RatFunc.{u1} K hring) -> Prop} (x : RatFunc.{u1} K hring), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))) -> (P x)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : (RatFunc.{u1} K hring) -> Prop} (x : RatFunc.{u1} K hring), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))) -> (P x)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.induction_on RatFunc.induction_onₓ'. -/
/-- Induction principle for `ratfunc K`: if `f p q : P (p / q)` for all `p q : K[X]`,
then `P` holds on all elements of `ratfunc K`.
@@ -1349,10 +1220,7 @@ protected theorem induction_on {P : RatFunc K → Prop} (x : RatFunc K)
#align ratfunc.induction_on RatFunc.induction_on
/- warning: ratfunc.of_fraction_ring_mk' -> RatFunc.ofFractionRing_mk' is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) x y)) (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain) x y)
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (y : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) x y)) (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain) x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'ₓ'. -/
theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
ofFractionRing (IsLocalization.mk' _ x y) = IsLocalization.mk' (RatFunc K) x y := by
@@ -1360,10 +1228,7 @@ theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'
/- warning: ratfunc.of_fraction_ring_eq -> RatFunc.ofFractionRing_eq is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (fun (_x : AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) => (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (AlgEquiv.hasCoeToFun.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain)))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (fun (_x : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) => RatFunc.{u1} K hring) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toZero.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toAddZeroClass.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toZero.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AlgEquivClass.toAlgHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eqₓ'. -/
@[simp]
theorem ofFractionRing_eq :
@@ -1376,10 +1241,7 @@ theorem ofFractionRing_eq :
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
/- warning: ratfunc.to_fraction_ring_eq -> RatFunc.toFractionRing_eq is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RatFunc.toFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (fun (_x : AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) => (RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (AlgEquiv.hasCoeToFun.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RatFunc.toFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (fun (_x : RatFunc.{u1} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} K hring) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toZero.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toZero.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toAddZeroClass.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AlgEquivClass.toAlgHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eqₓ'. -/
@[simp]
theorem toFractionRing_eq :
@@ -1392,10 +1254,7 @@ theorem toFractionRing_eq :
#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
/- warning: ratfunc.to_fraction_ring_ring_equiv_symm_eq -> RatFunc.toFractionRingRingEquiv_symm_eq is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingEquiv.{u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring)) (RingEquiv.symm.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.toFractionRingRingEquiv.{u1} K hring)) (AlgEquiv.toRingEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain)))
-but is expected to have type
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} (RingEquiv.{u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring)) (RingEquiv.symm.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.toFractionRingRingEquiv.{u1} K hring)) (AlgEquiv.toRingEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eqₓ'. -/
@[simp]
theorem toFractionRingRingEquiv_symm_eq :
@@ -1459,10 +1318,7 @@ def numDenom (x : RatFunc K) : K[X] × K[X] :=
-/
/- warning: ratfunc.num_denom_div -> RatFunc.numDenom_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Eq.{succ u1} (Prod.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RatFunc.numDenom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (Prod.mk.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Eq.{succ u1} (Prod.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RatFunc.numDenom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (Prod.mk.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_denom_div RatFunc.numDenom_divₓ'. -/
@[simp]
theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
@@ -1488,7 +1344,6 @@ private theorem num_div' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) =
Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) :=
by rw [Num, num_denom_div _ hq]
-#align ratfunc.num_div' ratfunc.num_div'
#print RatFunc.num_zero /-
@[simp]
@@ -1497,10 +1352,7 @@ theorem num_zero : num (0 : RatFunc K) = 0 := by convert num_div' (0 : K[X]) one
-/
/- warning: ratfunc.num_div -> RatFunc.num_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_div RatFunc.num_divₓ'. -/
@[simp]
theorem num_div (p q : K[X]) :
@@ -1519,20 +1371,14 @@ theorem num_one : num (1 : RatFunc K) = 1 := by convert num_div (1 : K[X]) 1 <;>
-/
/- warning: ratfunc.num_algebra_map -> RatFunc.num_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) p
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) p
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_algebra_map RatFunc.num_algebraMapₓ'. -/
@[simp]
theorem num_algebraMap (p : K[X]) : num (algebraMap _ _ p) = p := by convert num_div p 1 <;> simp
#align ratfunc.num_algebra_map RatFunc.num_algebraMap
/- warning: ratfunc.num_div_dvd -> RatFunc.num_div_dvd is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) p)
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) p)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd RatFunc.num_div_dvdₓ'. -/
theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) ∣ p :=
@@ -1543,10 +1389,7 @@ theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
#align ratfunc.num_div_dvd RatFunc.num_div_dvd
/- warning: ratfunc.num_div_dvd' -> RatFunc.num_div_dvd' is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) p)
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Dvd.dvd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (semigroupDvd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (SemigroupWithZero.toSemigroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalSemiring.toSemigroupWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (CommRing.toNonUnitalCommRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) p)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd' RatFunc.num_div_dvd'ₓ'. -/
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@[simp]
@@ -1563,10 +1406,7 @@ def denom (x : RatFunc K) : K[X] :=
-/
/- warning: ratfunc.denom_div -> RatFunc.denom_div is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div RatFunc.denom_divₓ'. -/
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
@@ -1604,10 +1444,7 @@ theorem denom_one : denom (1 : RatFunc K) = 1 := by
-/
/- warning: ratfunc.denom_algebra_map -> RatFunc.denom_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.one.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.denom_algebra_map RatFunc.denom_algebraMapₓ'. -/
@[simp]
theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (RatFunc K) p) = 1 := by
@@ -1615,10 +1452,7 @@ theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (RatFunc K) p) = 1 :=
#align ratfunc.denom_algebra_map RatFunc.denom_algebraMap
/- warning: ratfunc.denom_div_dvd -> RatFunc.denom_div_dvd is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) q
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) q
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div_dvd RatFunc.denom_div_dvdₓ'. -/
@[simp]
theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q) ∣ q :=
@@ -1631,10 +1465,7 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
#align ratfunc.denom_div_dvd RatFunc.denom_div_dvd
/- warning: ratfunc.num_div_denom -> RatFunc.num_div_denom is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.num.{u1} K hfield x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.denom.{u1} K hfield x))) x
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.num.{u1} K hfield x)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.denom.{u1} K hfield x)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.num.{u1} K hfield x)) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.num.{u1} K hfield x)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.denom.{u1} K hfield x))) x
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_denom RatFunc.num_div_denomₓ'. -/
@[simp]
theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x :=
@@ -1666,10 +1497,7 @@ theorem num_ne_zero {x : RatFunc K} (hx : x ≠ 0) : num x ≠ 0 :=
-/
/- warning: ratfunc.num_mul_eq_mul_denom_iff -> RatFunc.num_mul_eq_mul_denom_iff is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RatFunc.num.{u1} K hfield x) q) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) p (RatFunc.denom.{u1} K hfield x))) (Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))} {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RatFunc.num.{u1} K hfield x) q) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) p (RatFunc.denom.{u1} K hfield x))) (Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_mul_eq_mul_denom_iff RatFunc.num_mul_eq_mul_denom_iffₓ'. -/
theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
x.num * q = p * x.den ↔ x = algebraMap _ _ p / algebraMap _ _ q :=
@@ -1710,10 +1538,7 @@ theorem num_denom_mul (x y : RatFunc K) :
-/
/- warning: ratfunc.num_dvd -> RatFunc.num_dvd is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield x) p) (Exists.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Exists.{0} (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (fun (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield x) p) (Exists.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => Exists.{0} (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (fun (hq : Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_dvd RatFunc.num_dvdₓ'. -/
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
num x ∣ p ↔ ∃ (q : K[X])(hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
@@ -1730,10 +1555,7 @@ theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
#align ratfunc.num_dvd RatFunc.num_dvd
/- warning: ratfunc.denom_dvd -> RatFunc.denom_dvd is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield x) q) (Exists.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q)))))
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield x) q) (Exists.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.denom_dvd RatFunc.denom_dvdₓ'. -/
theorem denom_dvd {x : RatFunc K} {q : K[X]} (hq : q ≠ 0) :
denom x ∣ q ↔ ∃ p : K[X], x = algebraMap _ _ p / algebraMap _ _ q :=
@@ -1794,10 +1616,7 @@ theorem map_denom_ne_zero {L F : Type _} [Zero L] [ZeroHomClass F K[X] L] (φ :
#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
/- warning: ratfunc.map_apply -> RatFunc.map_apply is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F (Field.toCommRing.{u1} K hfield) _inst_1 _inst_3 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ (RatFunc.num.{u1} K hfield f))) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ (RatFunc.denom.{u1} K hfield f))))
-but is expected to have type
- forall {K : Type.{u3}} [hfield : Field.{u3} K] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) f) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (fun (_x : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F (Field.toCommRing.{u3} K hfield) _inst_1 _inst_3 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.denom.{u3} K hfield f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) f) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.denom.{u3} K hfield f))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply RatFunc.map_applyₓ'. -/
theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
(hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
@@ -1808,10 +1627,7 @@ theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X
#align ratfunc.map_apply RatFunc.map_apply
/- warning: ratfunc.lift_monoid_with_zero_hom_apply -> RatFunc.liftMonoidWithZeroHom_apply is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : CommGroupWithZero.{u2} L] (φ : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u2 u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u1, u2} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) φ (nonZeroDivisors.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u2, u1} L K _inst_1 (Field.toCommRing.{u1} K hfield) φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (GroupWithZero.toDivInvMonoid.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ (RatFunc.denom.{u1} K hfield f)))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : CommGroupWithZero.{u1} L] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) φ (nonZeroDivisors.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (f : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) f) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (fun (_x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (MulOneClass.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} L K _inst_1 (Field.toCommRing.{u2} K hfield) φ hφ) f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.denom.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ (RatFunc.num.{u2} K hfield f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ (RatFunc.denom.{u2} K hfield f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_applyₓ'. -/
theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X] →*₀ L)
(hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) : liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.den :=
@@ -1819,10 +1635,7 @@ theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X
#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_apply
/- warning: ratfunc.lift_ring_hom_apply -> RatFunc.liftRingHom_apply is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (φ : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (RingHom.ringHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.liftRingHom.{u2, u1} L K _inst_1 (Field.toCommRing.{u1} K hfield) φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ (RatFunc.denom.{u1} K hfield f)))
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (φ : RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (f : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) f) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (fun (_x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (RatFunc.liftRingHom.{u1, u2} L K _inst_1 (Field.toCommRing.{u2} K hfield) φ hφ) f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.denom.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ (RatFunc.num.{u2} K hfield f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ (RatFunc.denom.{u2} K hfield f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_applyₓ'. -/
theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.den :=
@@ -1830,10 +1643,7 @@ theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]
#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
/- warning: ratfunc.lift_alg_hom_apply -> RatFunc.liftAlgHom_apply is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_2 : CommSemiring.{u3} S] [_inst_3 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))] [_inst_4 : Algebra.{u3, u2} S L _inst_2 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) (RatFunc.liftAlgHom.{u1, u2, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) L S _inst_1 _inst_2 _inst_3 _inst_4 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) φ (RatFunc.denom.{u1} K hfield f)))
-but is expected to have type
- forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))] [_inst_4 : Algebra.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => L) f) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (fun (_x : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddMonoid.toZero.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4))))) (RatFunc.liftAlgHom.{u3, u2, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) L S _inst_1 _inst_2 _inst_3 _inst_4 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))))) φ (RatFunc.num.{u3} K hfield f)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))))) φ (RatFunc.denom.{u3} K hfield f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_applyₓ'. -/
theorem liftAlgHom_apply {L S : Type _} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
(φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
@@ -1883,10 +1693,7 @@ theorem algebraMap_eq_C : algebraMap K (RatFunc K) = C :=
#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_C
/- warning: ratfunc.algebra_map_C -> RatFunc.algebraMap_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (a : K), Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) a)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => K -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RatFunc.C.{u1} K hring hdomain) a)
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K] (hdomain : K), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (fun (a : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (RatFunc.C.{u1} K hring) hdomain)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_C RatFunc.algebraMap_Cₓ'. -/
@[simp]
theorem algebraMap_C (a : K) : algebraMap K[X] (RatFunc K) (Polynomial.C a) = C a :=
@@ -1905,10 +1712,7 @@ theorem algebraMap_comp_C : (algebraMap K[X] (RatFunc K)).comp Polynomial.C = C
#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_C
/- warning: ratfunc.smul_eq_C_mul -> RatFunc.smul_eq_C_mul is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (r : K) (x : RatFunc.{u1} K hring), Eq.{succ u1} (RatFunc.{u1} K hring) (SMul.smul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring K (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (SMulZeroClass.toHasSmul.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.smulZeroClass.{u1, u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) K (DistribSMul.toSmulZeroClass.{u1, u1} K K (AddMonoid.toAddZeroClass.{u1} K (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (Polynomial.isScalarTower_right.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) r x) (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHMul.{u1} (RatFunc.{u1} K hring) (RatFunc.hasMul.{u1} K hring)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => K -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RatFunc.C.{u1} K hring hdomain) r) x)
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K] (hdomain : K) (r : RatFunc.{u1} K (Field.toCommRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (HSMul.hSMul.{u1, u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (instHSMul.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instSMulRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) K (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hring))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hring)))))) K (Algebra.toSMul.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Polynomial.isScalarTower_right.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))))))) (Module.toDistribMulAction.{u1, u1} K K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hring)))))) (Semiring.toModule.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (IsScalarTower.right.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))))) hdomain r) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (RatFunc.instMulRatFunc.{u1} K (Field.toCommRing.{u1} K hring))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (RatFunc.C.{u1} K hring) hdomain) r)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mulₓ'. -/
theorem smul_eq_C_mul (r : K) (x : RatFunc K) : r • x = C r * x := by
rw [Algebra.smul_def, algebra_map_eq_C]
@@ -1926,10 +1730,7 @@ def X : RatFunc K :=
#align ratfunc.X RatFunc.X
/- warning: ratfunc.algebra_map_X -> RatFunc.algebraMap_X is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.X.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RatFunc.X.{u1} K hring hdomain)
-but is expected to have type
- forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.X.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (fun (a : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (Polynomial.X.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RatFunc.X.{u1} K hring)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_X RatFunc.algebraMap_Xₓ'. -/
@[simp]
theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
@@ -1943,10 +1744,7 @@ variable [hfield : Field K]
include hfield
/- warning: ratfunc.num_C -> RatFunc.num_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) c)
-but is expected to have type
- forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (RatFunc.C.{u1} K hfield) c)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) c)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.num_C RatFunc.num_Cₓ'. -/
@[simp]
theorem num_C (c : K) : num (C c) = Polynomial.C c :=
@@ -2024,10 +1822,7 @@ theorem eval₂_denom_ne_zero {x : RatFunc K} (h : eval f a x ≠ 0) :
variable (f a)
/- warning: ratfunc.eval_C -> RatFunc.eval_C is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {c : K}, Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => K -> L) (RingHom.hasCoeToFun.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) f c)
-but is expected to have type
- forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {c : K}, Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))) (RingHom.instRingHomClassRingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))))))) (RatFunc.C.{u2} K hfield) c)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (NonUnitalNonAssocSemiring.toMul.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) f c)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.eval_C RatFunc.eval_Cₓ'. -/
@[simp]
theorem eval_C {c : K} : eval f a (C c) = f c := by simp [eval]
@@ -2064,10 +1859,7 @@ theorem eval_one : eval f a 1 = 1 := by simp [eval]
#align ratfunc.eval_one RatFunc.eval_one
/- warning: ratfunc.eval_algebra_map -> RatFunc.eval_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {S : Type.{u3}} [_inst_2 : CommSemiring.{u3} S] [_inst_3 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))] (p : S), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => S -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3)) p)) (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => S -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (algebraMap.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_3) p))
-but is expected to have type
- forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u3, u1} K L (Semiring.toNonAssocSemiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {S : Type.{u2}} [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))] (p : S), Eq.{succ u1} L (RatFunc.eval.{u3, u1} K hfield L _inst_1 f a (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))) (RingHom.instRingHomClassRingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (algebraMap.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3)) p)) (Polynomial.eval₂.{u3, u1} K L (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))) (RingHom.instRingHomClassRingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (algebraMap.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3) p))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.eval_algebra_map RatFunc.eval_algebraMapₓ'. -/
@[simp]
theorem eval_algebraMap {S : Type _} [CommSemiring S] [Algebra S K[X]] (p : S) :
@@ -2183,10 +1975,7 @@ theorem intDegree_X : intDegree (X : RatFunc K) = 1 := by
-/
/- warning: ratfunc.int_degree_polynomial -> RatFunc.intDegree_polynomial is a dubious translation:
-lean 3 declaration is
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))}, Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Polynomial.natDegree.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) p))
-but is expected to have type
- forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))}, Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) p)) (Nat.cast.{0} Int instNatCastInt (Polynomial.natDegree.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) p))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_polynomial RatFunc.intDegree_polynomialₓ'. -/
@[simp]
theorem intDegree_polynomial {p : K[X]} : intDegree (algebraMap K[X] (RatFunc K) p) = natDegree p :=
@@ -2299,20 +2088,14 @@ instance coeToLaurentSeries : Coe (RatFunc F) (LaurentSeries F) :=
#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeries
/- warning: ratfunc.coe_def -> RatFunc.coe_def is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (fun (_x : AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ([anonymous].{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f)
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toAddZeroClass.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AlgHom.algHomClass.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_def RatFunc.coe_defₓ'. -/
theorem coe_def : (f : LaurentSeries F) = coeAlgHom F f :=
rfl
#align ratfunc.coe_def RatFunc.coe_def
/- warning: ratfunc.coe_num_denom -> RatFunc.coe_num_denom is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeTrans.{succ u1, succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.hasCoe.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Polynomial.coeToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.num.{u1} F _inst_1 f)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeTrans.{succ u1, succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.hasCoe.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Polynomial.coeToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.denom.{u1} F _inst_1 f)))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.denom.{u1} F _inst_1 f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (fun (a : PowerSeries.{u1} F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (PowerSeries.{u1} F) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.ofPowerSeries.{0, u1} Int F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (fun (a : PowerSeries.{u1} F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (PowerSeries.{u1} F) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.ofPowerSeries.{0, u1} Int F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.denom.{u1} F _inst_1 f))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_num_denom RatFunc.coe_num_denomₓ'. -/
theorem coe_num_denom : (f : LaurentSeries F) = f.num / f.den :=
liftAlgHom_apply _ _ f
@@ -2329,10 +2112,7 @@ theorem coe_injective : Function.Injective (coe : RatFunc F → LaurentSeries F)
#align ratfunc.coe_injective RatFunc.coe_injective
/- warning: ratfunc.coe_apply -> RatFunc.coe_apply is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (fun (_x : AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ([anonymous].{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f)
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toAddZeroClass.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AlgHom.algHomClass.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_apply RatFunc.coe_applyₓ'. -/
@[simp, norm_cast]
theorem coe_apply : coeAlgHom F f = f :=
@@ -2373,10 +2153,7 @@ theorem coe_add : ((f + g : RatFunc F) : LaurentSeries F) = f + g :=
#align ratfunc.coe_add RatFunc.coe_add
/- warning: ratfunc.coe_sub -> RatFunc.coe_sub is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSub.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasSub.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HSub.hSub.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHSub.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (SubNegMonoid.toHasSub.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (AddGroup.toSubNegMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.addGroup.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddGroupWithOne.toAddGroup.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSub.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instSubRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HSub.hSub.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHSub.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Ring.toSub.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instRingHahnSeriesToPartialOrderToZeroToMonoidWithZeroToSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_sub RatFunc.coe_subₓ'. -/
@[simp, norm_cast]
theorem coe_sub : ((f - g : RatFunc F) : LaurentSeries F) = f - g :=
@@ -2417,10 +2194,7 @@ theorem coe_pow (n : ℕ) : ((f ^ n : RatFunc F) : LaurentSeries F) = f ^ n :=
#align ratfunc.coe_pow RatFunc.coe_pow
/- warning: ratfunc.coe_div -> RatFunc.coe_div is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasDiv.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) f g)) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) f g)) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHDiv.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Field.toDiv.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_div RatFunc.coe_divₓ'. -/
@[simp, norm_cast]
theorem coe_div :
@@ -2429,10 +2203,7 @@ theorem coe_div :
#align ratfunc.coe_div RatFunc.coe_div
/- warning: ratfunc.coe_C -> RatFunc.coe_C is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => F -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RatFunc.C.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)) r)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => F -> (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (HahnSeries.C.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) r)
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : F) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (RatFunc.C.{u1} F _inst_1) r)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : F) => HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.C.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) r)
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_C RatFunc.coe_Cₓ'. -/
@[simp, norm_cast]
theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r := by
@@ -2441,10 +2212,7 @@ theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r :
#align ratfunc.coe_C RatFunc.coe_C
/- warning: ratfunc.coe_smul -> RatFunc.coe_smul is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (SMul.smul.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasSmul.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) F (Localization.hasSmul.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (nonZeroDivisors.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Ring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toRing.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) F (SMulZeroClass.toHasSmul.{u1, u1} F (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.zero.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.smulZeroClass.{u1, u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) F (DistribSMul.toSmulZeroClass.{u1, u1} F F (AddMonoid.toAddZeroClass.{u1} F (AddMonoidWithOne.toAddMonoid.{u1} F (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} F (NonAssocSemiring.toAddCommMonoidWithOne.{u1} F (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (Polynomial.isScalarTower_right.{u1, u1} F F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (IsScalarTower.right.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) r f)) (SMul.smul.{u1, u1} F (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasSmul.{0, u1, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) r ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HSMul.hSMul.{u1, u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSMul.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instSMulRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) F (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (nonZeroDivisors.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) F (Algebra.toSMul.{u1, u1} F (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Polynomial.semiring.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.isScalarTower_right.{u1, u1} F F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} F (NonAssocSemiring.toAddCommMonoidWithOne.{u1} F (Semiring.toNonAssocSemiring.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} F F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (IsScalarTower.right.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) r f)) (HSMul.hSMul.{u1, u1, u1} F (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHSMul.{u1, u1} F (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSMulHahnSeriesToZero.{0, u1, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (Ring.toAddGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Module.toDistribMulAction.{u1, u1} F F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) r (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_smul RatFunc.coe_smulₓ'. -/
-- TODO: generalize over other modules
@[simp, norm_cast]
@@ -2453,10 +2221,7 @@ theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • f :
#align ratfunc.coe_smul RatFunc.coe_smul
/- warning: ratfunc.coe_X -> RatFunc.coe_X is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (RatFunc.X.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (coeFn.{succ u1, succ u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (fun (_x : ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) => F -> (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (ZeroHom.hasCoeToFun.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (HahnSeries.single.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) (OfNat.ofNat.{u1} F 1 (OfNat.mk.{u1} F 1 (One.one.{u1} F (AddMonoidWithOne.toOne.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (RatFunc.X.{u1} F _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : F) => HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (ZeroHomClass.toFunLike.{u1, u1, u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (ZeroHom.zeroHomClass.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.single.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1))) (OfNat.ofNat.{u1} F 1 (One.toOfNat1.{u1} F (Semiring.toOne.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.coe_X RatFunc.coe_Xₓ'. -/
@[simp, norm_cast]
theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
@@ -2468,10 +2233,7 @@ instance : Algebra (RatFunc F) (LaurentSeries F) :=
RingHom.toAlgebra (coeAlgHom F).toRingHom
/- warning: ratfunc.algebra_map_apply_div -> RatFunc.algebraMap_apply_div is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (p : Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (q : Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.LaurentSeries.algebra.{u1} F _inst_1)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasDiv.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))
-but is expected to have type
- forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (p : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (q : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToCommRingLaurentSeriesToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToCommSemiringInstFieldRatFuncIsDomainInstSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZeroIntToOrderedCancelAddCommMonoidToStrictOrderedSemiringToLinearOrderedSemiringToLinearOrderedCommSemiringLinearOrderedCommRingToSemiringToDivisionSemiring.{u1} F _inst_1)) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))
+<too large>
Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_divₓ'. -/
theorem algebraMap_apply_div :
algebraMap (RatFunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -106,17 +106,19 @@ variable (K : Type u) [hring : CommRing K] [hdomain : IsDomain K]
include hring
+#print RatFunc /-
/-- `ratfunc K` is `K(x)`, the field of rational functions over `K`.
The inclusion of polynomials into `ratfunc` is `algebra_map K[X] (ratfunc K)`,
the maps between `ratfunc K` and another field of fractions of `K[X]`,
especially `fraction_ring K[X]`, are given by `is_localization.algebra_equiv`.
-/
-structure Ratfunc : Type u where of_fraction_ring ::
+structure RatFunc : Type u where ofFractionRing ::
toFractionRing : FractionRing K[X]
-#align ratfunc Ratfunc
+#align ratfunc RatFunc
+-/
-namespace Ratfunc
+namespace RatFunc
variable {K}
@@ -125,14 +127,24 @@ section Rec
/-! ### Constructing `ratfunc`s and their induction principles -/
-theorem of_fraction_ring_injective : Function.Injective (of_fraction_ring : _ → Ratfunc K) :=
- fun x y => of_fraction_ring.inj
-#align ratfunc.of_fraction_ring_injective Ratfunc.of_fraction_ring_injective
+#print RatFunc.ofFractionRing_injective /-
+theorem ofFractionRing_injective : Function.Injective (ofFractionRing : _ → RatFunc K) := fun x y =>
+ ofFractionRing.inj
+#align ratfunc.of_fraction_ring_injective RatFunc.ofFractionRing_injective
+-/
+#print RatFunc.toFractionRing_injective /-
theorem toFractionRing_injective : Function.Injective (toFractionRing : _ → FractionRing K[X])
| ⟨x⟩, ⟨y⟩, rfl => rfl
-#align ratfunc.to_fraction_ring_injective Ratfunc.toFractionRing_injective
+#align ratfunc.to_fraction_ring_injective RatFunc.toFractionRing_injective
+-/
+/- warning: ratfunc.lift_on -> RatFunc.liftOn is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}}, (RatFunc.{u1} K hring) -> (forall (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) -> P)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}}, (RatFunc.{u1} K hring) -> (forall (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) -> P)
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on RatFunc.liftOnₓ'. -/
/-- Non-dependent recursion principle for `ratfunc K`:
To construct a term of `P : Sort*` out of `x : ratfunc K`,
it suffices to provide a constructor `f : Π (p q : K[X]), P`
@@ -146,7 +158,7 @@ we construct a value of `P` for such elements of `ratfunc K` by setting
When `[is_domain K]`, one can use `ratfunc.lift_on'`, which has the stronger requirement
of `∀ {p q a : K[X]} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)`.
-/
-protected irreducible_def liftOn {P : Sort v} (x : Ratfunc K) (f : ∀ p q : K[X], P)
+protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X], P)
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') : P :=
Localization.liftOn (to_fraction_ring x)
(-- Fix timeout by manipulating elaboration order
@@ -155,18 +167,25 @@ protected irreducible_def liftOn {P : Sort v} (x : Ratfunc K) (f : ∀ p q : K[X
H q.2 q'.2
(let ⟨⟨c, hc⟩, mul_eq⟩ := Localization.r_iff_exists.mp h
mul_cancel_left_coe_nonZeroDivisors.mp mul_eq)
-#align ratfunc.lift_on Ratfunc.liftOn
-
-theorem liftOn_of_fraction_ring_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ p q : K[X], P)
+#align ratfunc.lift_on RatFunc.liftOn
+
+/- warning: ratfunc.lift_on_of_fraction_ring_mk -> RatFunc.liftOn_ofFractionRing_mk is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}} (n : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P) (H : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d)) f H) (f n ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) d))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {P : Sort.{u2}} (n : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (d : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P) (H : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d)) f H) (f n (Subtype.val.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Set.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Set.instMembershipSet.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) x (SetLike.coe.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) d))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mkₓ'. -/
+theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ p q : K[X], P)
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
- Ratfunc.liftOn (of_fraction_ring (Localization.mk n d)) f @H = f n d :=
+ RatFunc.liftOn (of_fraction_ring (Localization.mk n d)) f @H = f n d :=
by
- unfold Ratfunc.liftOn
+ unfold RatFunc.liftOn
exact Localization.liftOn_mk _ _ _ _
-#align ratfunc.lift_on_of_fraction_ring_mk Ratfunc.liftOn_of_fraction_ring_mk
+#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
include hdomain
+#print RatFunc.mk /-
/-- `ratfunc.mk (p q : K[X])` is `p / q` as a rational function.
If `q = 0`, then `mk` returns 0.
@@ -174,56 +193,103 @@ If `q = 0`, then `mk` returns 0.
This is an auxiliary definition used to define an `algebra` structure on `ratfunc`;
the `simp` normal form of `mk p q` is `algebra_map _ _ p / algebra_map _ _ q`.
-/
-protected irreducible_def mk (p q : K[X]) : Ratfunc K :=
- of_fraction_ring (algebraMap _ _ p / algebraMap _ _ q)
-#align ratfunc.mk Ratfunc.mk
+protected irreducible_def mk (p q : K[X]) : RatFunc K :=
+ ofFractionRing (algebraMap _ _ p / algebraMap _ _ q)
+#align ratfunc.mk RatFunc.mk
+-/
+/- warning: ratfunc.mk_eq_div' -> RatFunc.mk_eq_div' is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) q) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) p) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'ₓ'. -/
theorem mk_eq_div' (p q : K[X]) :
- Ratfunc.mk p q = of_fraction_ring (algebraMap _ _ p / algebraMap _ _ q) := by unfold Ratfunc.mk
-#align ratfunc.mk_eq_div' Ratfunc.mk_eq_div'
+ RatFunc.mk p q = ofFractionRing (algebraMap _ _ p / algebraMap _ _ q) := by unfold RatFunc.mk
+#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'
-theorem mk_zero (p : K[X]) : Ratfunc.mk p 0 = of_fraction_ring 0 := by
+#print RatFunc.mk_zero /-
+theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
rw [mk_eq_div', RingHom.map_zero, div_zero]
-#align ratfunc.mk_zero Ratfunc.mk_zero
+#align ratfunc.mk_zero RatFunc.mk_zero
+-/
+/- warning: ratfunc.mk_coe_def -> RatFunc.mk_coe_def is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) q)) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (Subtype.val.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Set.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Set.instMembershipSet.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) x (SetLike.coe.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) q)) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_coe_def RatFunc.mk_coe_defₓ'. -/
theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
- Ratfunc.mk p q = of_fraction_ring (IsLocalization.mk' _ p q) := by
+ RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p q) := by
simp only [mk_eq_div', ← Localization.mk_eq_mk', FractionRing.mk_eq_div]
-#align ratfunc.mk_coe_def Ratfunc.mk_coe_def
-
+#align ratfunc.mk_coe_def RatFunc.mk_coe_def
+
+/- warning: ratfunc.mk_def_of_mem -> RatFunc.mk_def_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) q hq)))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) q hq)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_memₓ'. -/
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
- Ratfunc.mk p q = of_fraction_ring (IsLocalization.mk' _ p ⟨q, hq⟩) := by
+ RatFunc.mk p q = ofFractionRing (IsLocalization.mk' _ p ⟨q, hq⟩) := by
simp only [← mk_coe_def, [anonymous]]
-#align ratfunc.mk_def_of_mem Ratfunc.mk_def_of_mem
-
+#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
+
+/- warning: ratfunc.mk_def_of_ne -> RatFunc.mk_def_of_ne is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) q (Iff.mpr (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.noZeroDivisors.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q) hq))))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) q (Iff.mpr (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.instNoZeroDivisorsPolynomialMul'Zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q) hq))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_neₓ'. -/
theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
- Ratfunc.mk p q =
- of_fraction_ring (IsLocalization.mk' _ p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
+ RatFunc.mk p q =
+ ofFractionRing (IsLocalization.mk' _ p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
mk_def_of_mem p _
-#align ratfunc.mk_def_of_ne Ratfunc.mk_def_of_ne
-
+#align ratfunc.mk_def_of_ne RatFunc.mk_def_of_ne
+
+/- warning: ratfunc.mk_eq_localization_mk -> RatFunc.mk_eq_localization_mk is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) q (Iff.mpr (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))) (Polynomial.noZeroDivisors.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q) hq))))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) p (Subtype.mk.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) q (Iff.mpr (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))) (mem_nonZeroDivisors_iff_ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))) (Polynomial.instNoZeroDivisorsPolynomialMul'Zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.to_noZeroDivisors.{u1} K (CommRing.toRing.{u1} K hring) hdomain)) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q) hq))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mkₓ'. -/
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
- Ratfunc.mk p q =
- of_fraction_ring (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
+ RatFunc.mk p q =
+ ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
by rw [mk_def_of_ne, Localization.mk_eq_mk']
-#align ratfunc.mk_eq_localization_mk Ratfunc.mk_eq_localization_mk
-
-theorem mk_one' (p : K[X]) : Ratfunc.mk p 1 = of_fraction_ring (algebraMap _ _ p) := by
+#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
+
+/- warning: ratfunc.mk_one' -> RatFunc.mk_one' is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (RatFunc.ofFractionRing.{u1} K hring (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.ofFractionRing.{u1} K hring (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one' RatFunc.mk_one'ₓ'. -/
+theorem mk_one' (p : K[X]) : RatFunc.mk p 1 = ofFractionRing (algebraMap _ _ p) := by
rw [← IsLocalization.mk'_one (FractionRing K[X]) p, ← mk_coe_def, Submonoid.coe_one]
-#align ratfunc.mk_one' Ratfunc.mk_one'
+#align ratfunc.mk_one' RatFunc.mk_one'
+#print RatFunc.mk_eq_mk /-
theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
- Ratfunc.mk p q = Ratfunc.mk p' q' ↔ p * q' = p' * q := by
+ RatFunc.mk p q = RatFunc.mk p' q' ↔ p * q' = p' * q := by
rw [mk_def_of_ne _ hq, mk_def_of_ne _ hq', of_fraction_ring_injective.eq_iff,
IsLocalization.mk'_eq_iff_eq', [anonymous], [anonymous],
(IsFractionRing.injective K[X] (FractionRing K[X])).eq_iff]
-#align ratfunc.mk_eq_mk Ratfunc.mk_eq_mk
+#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
+-/
+/- warning: ratfunc.lift_on_mk -> RatFunc.liftOn_mk is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (hq' : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.mk.{u1} K hring hdomain p q) f H) (f p q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (hq' : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (RatFunc.mk.{u1} K hring hdomain p q) f H) (f p q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_mk RatFunc.liftOn_mkₓ'. -/
theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
fun p q p' q' hq hq' h => H' (nonZeroDivisors.ne_zero hq) (nonZeroDivisors.ne_zero hq') h) :
- (Ratfunc.mk p q).liftOn f @H = f p q :=
+ (RatFunc.mk p q).liftOn f @H = f p q :=
by
by_cases hq : q = 0
· subst hq
@@ -232,10 +298,11 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p,
·
simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, lift_on_of_fraction_ring_mk,
[anonymous]]
-#align ratfunc.lift_on_mk Ratfunc.liftOn_mk
+#align ratfunc.lift_on_mk RatFunc.liftOn_mk
omit hdomain
+#print RatFunc.lift_on_condition_of_lift_on'_condition /-
theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X], P}
(H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
(hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
@@ -244,10 +311,12 @@ theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ p q : K[X]
_ = f (q * p') (q * q') := by rw [h, mul_comm q']
_ = f p' q' := H hq' hq
-#align ratfunc.lift_on_condition_of_lift_on'_condition Ratfunc.lift_on_condition_of_lift_on'_condition
+#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
+-/
include hdomain
+#print RatFunc.liftOn' /-
/-- Non-dependent recursion principle for `ratfunc K`: if `f p q : P` for all `p q`,
such that `f (a * p) (a * q) = f p q`, then we can find a value of `P`
for all elements of `ratfunc K` by setting `lift_on' (p / q) f _ = f p q`.
@@ -255,34 +324,39 @@ for all elements of `ratfunc K` by setting `lift_on' (p / q) f _ = f p q`.
The value of `f p 0` for any `p` is never used and in principle this may be anything,
although many usages of `lift_on'` assume `f p 0 = f 0 1`.
-/
-protected irreducible_def liftOn' {P : Sort v} (x : Ratfunc K) (f : ∀ p q : K[X], P)
+protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : ∀ p q : K[X], P)
(H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
x.liftOn f fun p q p' q' hq hq' =>
lift_on_condition_of_lift_on'_condition (@H) (nonZeroDivisors.ne_zero hq)
(nonZeroDivisors.ne_zero hq')
-#align ratfunc.lift_on' Ratfunc.liftOn'
+#align ratfunc.lift_on' RatFunc.liftOn'
+-/
+#print RatFunc.liftOn'_mk /-
theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H : ∀ {p q a} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q) :
- (Ratfunc.mk p q).liftOn' f @H = f p q :=
+ (RatFunc.mk p q).liftOn' f @H = f p q :=
by
- rw [Ratfunc.liftOn', Ratfunc.liftOn_mk _ _ _ f0]
+ rw [RatFunc.liftOn', RatFunc.liftOn_mk _ _ _ f0]
exact lift_on_condition_of_lift_on'_condition @H
-#align ratfunc.lift_on'_mk Ratfunc.liftOn'_mk
+#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
+-/
/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
+#print RatFunc.induction_on' /-
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
See also `induction_on`, which is a recursion principle defined in terms of `algebra_map`.
-/
-protected irreducible_def induction_on' {P : Ratfunc K → Prop} :
- ∀ (x : Ratfunc K) (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (Ratfunc.mk p q)), P x
+protected irreducible_def induction_on' {P : RatFunc K → Prop} :
+ ∀ (x : RatFunc K) (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (RatFunc.mk p q)), P x
| ⟨x⟩, f =>
Localization.induction_on x fun ⟨p, q⟩ => by
simpa only [mk_coe_def, Localization.mk_eq_mk'] using
f p q (mem_non_zero_divisors_iff_ne_zero.mp q.2)
-#align ratfunc.induction_on' Ratfunc.induction_on'
+#align ratfunc.induction_on' RatFunc.induction_on'
+-/
end Rec
@@ -291,114 +365,155 @@ section Field
/-! ### Defining the field structure -/
+#print RatFunc.zero /-
/-- The zero rational function. -/
-protected irreducible_def zero : Ratfunc K :=
+protected irreducible_def zero : RatFunc K :=
⟨0⟩
-#align ratfunc.zero Ratfunc.zero
+#align ratfunc.zero RatFunc.zero
+-/
-instance : Zero (Ratfunc K) :=
- ⟨Ratfunc.zero⟩
+instance : Zero (RatFunc K) :=
+ ⟨RatFunc.zero⟩
-theorem of_fraction_ring_zero : (of_fraction_ring 0 : Ratfunc K) = 0 := by
- unfold Zero.zero Ratfunc.zero
-#align ratfunc.of_fraction_ring_zero Ratfunc.of_fraction_ring_zero
+#print RatFunc.ofFractionRing_zero /-
+theorem ofFractionRing_zero : (ofFractionRing 0 : RatFunc K) = 0 := by unfold Zero.zero RatFunc.zero
+#align ratfunc.of_fraction_ring_zero RatFunc.ofFractionRing_zero
+-/
+#print RatFunc.add /-
/-- Addition of rational functions. -/
-protected irreducible_def add : Ratfunc K → Ratfunc K → Ratfunc K
+protected irreducible_def add : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p + q⟩
-#align ratfunc.add Ratfunc.add
+#align ratfunc.add RatFunc.add
+-/
-instance : Add (Ratfunc K) :=
- ⟨Ratfunc.add⟩
+instance : Add (RatFunc K) :=
+ ⟨RatFunc.add⟩
-theorem of_fraction_ring_add (p q : FractionRing K[X]) :
- of_fraction_ring (p + q) = of_fraction_ring p + of_fraction_ring q := by
- unfold Add.add Ratfunc.add
-#align ratfunc.of_fraction_ring_add Ratfunc.of_fraction_ring_add
+#print RatFunc.ofFractionRing_add /-
+theorem ofFractionRing_add (p q : FractionRing K[X]) :
+ ofFractionRing (p + q) = ofFractionRing p + ofFractionRing q := by unfold Add.add RatFunc.add
+#align ratfunc.of_fraction_ring_add RatFunc.ofFractionRing_add
+-/
+#print RatFunc.sub /-
/-- Subtraction of rational functions. -/
-protected irreducible_def sub : Ratfunc K → Ratfunc K → Ratfunc K
+protected irreducible_def sub : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p - q⟩
-#align ratfunc.sub Ratfunc.sub
+#align ratfunc.sub RatFunc.sub
+-/
-instance : Sub (Ratfunc K) :=
- ⟨Ratfunc.sub⟩
+instance : Sub (RatFunc K) :=
+ ⟨RatFunc.sub⟩
-theorem of_fraction_ring_sub (p q : FractionRing K[X]) :
- of_fraction_ring (p - q) = of_fraction_ring p - of_fraction_ring q := by
- unfold Sub.sub Ratfunc.sub
-#align ratfunc.of_fraction_ring_sub Ratfunc.of_fraction_ring_sub
+/- warning: ratfunc.of_fraction_ring_sub -> RatFunc.ofFractionRing_sub is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HSub.hSub.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (SubNegMonoid.toHasSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddGroup.toSubNegMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddGroupWithOne.toAddGroup.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toAddCommGroupWithOne.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))))) p q)) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSub.{u1} (RatFunc.{u1} K hring) (RatFunc.hasSub.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HSub.hSub.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSub.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommRingLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) p q)) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSub.{u1} (RatFunc.{u1} K hring) (RatFunc.instSubRatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_subₓ'. -/
+theorem ofFractionRing_sub (p q : FractionRing K[X]) :
+ ofFractionRing (p - q) = ofFractionRing p - ofFractionRing q := by unfold Sub.sub RatFunc.sub
+#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_sub
+#print RatFunc.neg /-
/-- Additive inverse of a rational function. -/
-protected irreducible_def neg : Ratfunc K → Ratfunc K
+protected irreducible_def neg : RatFunc K → RatFunc K
| ⟨p⟩ => ⟨-p⟩
-#align ratfunc.neg Ratfunc.neg
+#align ratfunc.neg RatFunc.neg
+-/
-instance : Neg (Ratfunc K) :=
- ⟨Ratfunc.neg⟩
+instance : Neg (RatFunc K) :=
+ ⟨RatFunc.neg⟩
-theorem of_fraction_ring_neg (p : FractionRing K[X]) :
- of_fraction_ring (-p) = -of_fraction_ring p := by unfold Neg.neg Ratfunc.neg
-#align ratfunc.of_fraction_ring_neg Ratfunc.of_fraction_ring_neg
+#print RatFunc.ofFractionRing_neg /-
+theorem ofFractionRing_neg (p : FractionRing K[X]) : ofFractionRing (-p) = -ofFractionRing p := by
+ unfold Neg.neg RatFunc.neg
+#align ratfunc.of_fraction_ring_neg RatFunc.ofFractionRing_neg
+-/
+#print RatFunc.one /-
/-- The multiplicative unit of rational functions. -/
-protected irreducible_def one : Ratfunc K :=
+protected irreducible_def one : RatFunc K :=
⟨1⟩
-#align ratfunc.one Ratfunc.one
+#align ratfunc.one RatFunc.one
+-/
-instance : One (Ratfunc K) :=
- ⟨Ratfunc.one⟩
+instance : One (RatFunc K) :=
+ ⟨RatFunc.one⟩
-theorem of_fraction_ring_one : (of_fraction_ring 1 : Ratfunc K) = 1 := by unfold One.one Ratfunc.one
-#align ratfunc.of_fraction_ring_one Ratfunc.of_fraction_ring_one
+#print RatFunc.ofFractionRing_one /-
+theorem ofFractionRing_one : (ofFractionRing 1 : RatFunc K) = 1 := by unfold One.one RatFunc.one
+#align ratfunc.of_fraction_ring_one RatFunc.ofFractionRing_one
+-/
+#print RatFunc.mul /-
/-- Multiplication of rational functions. -/
-protected irreducible_def mul : Ratfunc K → Ratfunc K → Ratfunc K
+protected irreducible_def mul : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p * q⟩
-#align ratfunc.mul Ratfunc.mul
+#align ratfunc.mul RatFunc.mul
+-/
-instance : Mul (Ratfunc K) :=
- ⟨Ratfunc.mul⟩
+instance : Mul (RatFunc K) :=
+ ⟨RatFunc.mul⟩
-theorem of_fraction_ring_mul (p q : FractionRing K[X]) :
- of_fraction_ring (p * q) = of_fraction_ring p * of_fraction_ring q := by
- unfold Mul.mul Ratfunc.mul
-#align ratfunc.of_fraction_ring_mul Ratfunc.of_fraction_ring_mul
+#print RatFunc.ofFractionRing_mul /-
+theorem ofFractionRing_mul (p q : FractionRing K[X]) :
+ ofFractionRing (p * q) = ofFractionRing p * ofFractionRing q := by unfold Mul.mul RatFunc.mul
+#align ratfunc.of_fraction_ring_mul RatFunc.ofFractionRing_mul
+-/
include hdomain
+#print RatFunc.div /-
/-- Division of rational functions. -/
-protected irreducible_def div : Ratfunc K → Ratfunc K → Ratfunc K
+protected irreducible_def div : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p / q⟩
-#align ratfunc.div Ratfunc.div
+#align ratfunc.div RatFunc.div
+-/
-instance : Div (Ratfunc K) :=
- ⟨Ratfunc.div⟩
+instance : Div (RatFunc K) :=
+ ⟨RatFunc.div⟩
-theorem of_fraction_ring_div (p q : FractionRing K[X]) :
- of_fraction_ring (p / q) = of_fraction_ring p / of_fraction_ring q := by
- unfold Div.div Ratfunc.div
-#align ratfunc.of_fraction_ring_div Ratfunc.of_fraction_ring_div
+/- warning: ratfunc.of_fraction_ring_div -> RatFunc.ofFractionRing_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) p q)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (q : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (HDiv.hDiv.{u1, u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (instHDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDiv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))) p q)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (RatFunc.ofFractionRing.{u1} K hring p) (RatFunc.ofFractionRing.{u1} K hring q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_divₓ'. -/
+theorem ofFractionRing_div (p q : FractionRing K[X]) :
+ ofFractionRing (p / q) = ofFractionRing p / ofFractionRing q := by unfold Div.div RatFunc.div
+#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_div
+#print RatFunc.inv /-
/-- Multiplicative inverse of a rational function. -/
-protected irreducible_def inv : Ratfunc K → Ratfunc K
+protected irreducible_def inv : RatFunc K → RatFunc K
| ⟨p⟩ => ⟨p⁻¹⟩
-#align ratfunc.inv Ratfunc.inv
+#align ratfunc.inv RatFunc.inv
+-/
-instance : Inv (Ratfunc K) :=
- ⟨Ratfunc.inv⟩
+instance : Inv (RatFunc K) :=
+ ⟨RatFunc.inv⟩
-theorem of_fraction_ring_inv (p : FractionRing K[X]) :
- of_fraction_ring p⁻¹ = (of_fraction_ring p)⁻¹ := by unfold Inv.inv Ratfunc.inv
-#align ratfunc.of_fraction_ring_inv Ratfunc.of_fraction_ring_inv
+/- warning: ratfunc.of_fraction_ring_inv -> RatFunc.ofFractionRing_inv is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (Inv.inv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivInvMonoid.toHasInv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toDivInvMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) p)) (Inv.inv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasInv.{u1} K hring hdomain) (RatFunc.ofFractionRing.{u1} K hring p))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (Inv.inv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toInv.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))) p)) (Inv.inv.{u1} (RatFunc.{u1} K hring) (RatFunc.instInvRatFunc.{u1} K hring hdomain) (RatFunc.ofFractionRing.{u1} K hring p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_invₓ'. -/
+theorem ofFractionRing_inv (p : FractionRing K[X]) : ofFractionRing p⁻¹ = (ofFractionRing p)⁻¹ := by
+ unfold Inv.inv RatFunc.inv
+#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_inv
+#print RatFunc.mul_inv_cancel /-
-- Auxiliary lemma for the `field` instance
-theorem mul_inv_cancel : ∀ {p : Ratfunc K} (hp : p ≠ 0), p * p⁻¹ = 1
+theorem mul_inv_cancel : ∀ {p : RatFunc K} (hp : p ≠ 0), p * p⁻¹ = 1
| ⟨p⟩, h => by
have : p ≠ 0 := fun hp => h <| by rw [hp, of_fraction_ring_zero]
simpa only [← of_fraction_ring_inv, ← of_fraction_ring_mul, ← of_fraction_ring_one] using
_root_.mul_inv_cancel this
-#align ratfunc.mul_inv_cancel Ratfunc.mul_inv_cancel
+#align ratfunc.mul_inv_cancel RatFunc.mul_inv_cancel
+-/
section SMul
@@ -406,28 +521,48 @@ omit hdomain
variable {R : Type _}
+#print RatFunc.smul /-
/-- Scalar multiplication of rational functions. -/
-protected irreducible_def smul [SMul R (FractionRing K[X])] : R → Ratfunc K → Ratfunc K
+protected irreducible_def smul [SMul R (FractionRing K[X])] : R → RatFunc K → RatFunc K
| r, ⟨p⟩ => ⟨r • p⟩
-#align ratfunc.smul Ratfunc.smul
+#align ratfunc.smul RatFunc.smul
+-/
-- cannot reproduce
@[nolint fails_quickly]
-instance [SMul R (FractionRing K[X])] : SMul R (Ratfunc K) :=
- ⟨Ratfunc.smul⟩
-
-theorem of_fraction_ring_smul [SMul R (FractionRing K[X])] (c : R) (p : FractionRing K[X]) :
- of_fraction_ring (c • p) = c • of_fraction_ring p := by unfold SMul.smul Ratfunc.smul
-#align ratfunc.of_fraction_ring_smul Ratfunc.of_fraction_ring_smul
-
-theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : Ratfunc K) :
+instance [SMul R (FractionRing K[X])] : SMul R (RatFunc K) :=
+ ⟨RatFunc.smul⟩
+
+/- warning: ratfunc.of_fraction_ring_smul -> RatFunc.ofFractionRing_smul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {R : Type.{u2}} [_inst_1 : SMul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))] (c : R) (p : FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (SMul.smul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _inst_1 c p)) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R _inst_1) c (RatFunc.ofFractionRing.{u1} K hring p))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] {R : Type.{u1}} [_inst_1 : SMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))] (c : R) (p : FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)), Eq.{succ u2} (RatFunc.{u2} K hring) (RatFunc.ofFractionRing.{u2} K hring (HSMul.hSMul.{u1, u2, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (instHSMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) _inst_1) c p)) (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R _inst_1)) c (RatFunc.ofFractionRing.{u2} K hring p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_smul RatFunc.ofFractionRing_smulₓ'. -/
+theorem ofFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : FractionRing K[X]) :
+ ofFractionRing (c • p) = c • ofFractionRing p := by unfold SMul.smul RatFunc.smul
+#align ratfunc.of_fraction_ring_smul RatFunc.ofFractionRing_smul
+
+/- warning: ratfunc.to_fraction_ring_smul -> RatFunc.toFractionRing_smul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] {R : Type.{u2}} [_inst_1 : SMul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))] (c : R) (p : RatFunc.{u1} K hring), Eq.{succ u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.toFractionRing.{u1} K hring (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R _inst_1) c p)) (SMul.smul.{u2, u1} R (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _inst_1 c (RatFunc.toFractionRing.{u1} K hring p))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] {R : Type.{u1}} [_inst_1 : SMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))] (c : R) (p : RatFunc.{u2} K hring), Eq.{succ u2} (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (RatFunc.toFractionRing.{u2} K hring (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R _inst_1)) c p)) (HSMul.hSMul.{u1, u2, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (instHSMul.{u1, u2} R (FractionRing.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) _inst_1) c (RatFunc.toFractionRing.{u2} K hring p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smulₓ'. -/
+theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : RatFunc K) :
toFractionRing (c • p) = c • toFractionRing p :=
by
cases p
rw [← of_fraction_ring_smul]
-#align ratfunc.to_fraction_ring_smul Ratfunc.toFractionRing_smul
-
-theorem smul_eq_c_smul (x : Ratfunc K) (r : K) : r • x = Polynomial.C r • x :=
+#align ratfunc.to_fraction_ring_smul RatFunc.toFractionRing_smul
+
+/- warning: ratfunc.smul_eq_C_smul -> RatFunc.smul_eq_C_smul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] (x : RatFunc.{u1} K hring) (r : K), Eq.{succ u1} (RatFunc.{u1} K hring) (SMul.smul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring K (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (SMulZeroClass.toHasSmul.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.smulZeroClass.{u1, u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) K (DistribSMul.toSmulZeroClass.{u1, u1} K K (AddMonoid.toAddZeroClass.{u1} K (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (Polynomial.isScalarTower_right.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) r x) (SMul.smul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (SMulWithZero.toSmulZeroClass.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (MulActionWithZero.toSMulWithZero.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))) (Module.toMulActionWithZero.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (IsScalarTower.right.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) r) x)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] (x : RatFunc.{u1} K hring) (r : K), Eq.{succ u1} (RatFunc.{u1} K hring) (HSMul.hSMul.{u1, u1, u1} K (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSMul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.instSMulRatFunc.{u1, u1} K hring K (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (Algebra.toSMul.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} K hring) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.isScalarTower_right.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) r x) (HSMul.hSMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHSMul.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (RatFunc.{u1} K hring) (RatFunc.instSMulRatFunc.{u1, u1} K hring ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Algebra.toSMul.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Algebra.id.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsScalarTower.right.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Algebra.id.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) (Polynomial.C.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) r) x)
+Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smulₓ'. -/
+theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x :=
by
cases x
induction x
@@ -435,7 +570,7 @@ theorem smul_eq_c_smul (x : Ratfunc K) (r : K) : r • x = Polynomial.C r • x
rw [← of_fraction_ring_smul, ← of_fraction_ring_smul, Localization.smul_mk,
Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_C_mul]
· simp only
-#align ratfunc.smul_eq_C_smul Ratfunc.smul_eq_c_smul
+#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smul
include hdomain
@@ -445,16 +580,22 @@ variable [htower : IsScalarTower R K[X] K[X]]
include htower
-theorem mk_smul (c : R) (p q : K[X]) : Ratfunc.mk (c • p) q = c • Ratfunc.mk p q :=
+/- warning: ratfunc.mk_smul -> RatFunc.mk_smul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : Monoid.{u2} R] [_inst_2 : DistribMulAction.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))] [htower : IsScalarTower.{u2, u1, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) (Mul.toSMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2)))] (c : R) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain (SMul.smul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) c p) q) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R (Localization.hasSmul.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) R (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) htower)) c (RatFunc.mk.{u1} K hring hdomain p q))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : Monoid.{u1} R] [_inst_2 : DistribMulAction.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))] [htower : IsScalarTower.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))] (c : R) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u2} (RatFunc.{u2} K hring) (RatFunc.mk.{u2} K hring hdomain (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p) q) (HSMul.hSMul.{u1, u2, u2} R (RatFunc.{u2} K hring) (RatFunc.{u2} K hring) (instHSMul.{u1, u2} R (RatFunc.{u2} K hring) (RatFunc.instSMulRatFunc.{u2, u1} K hring R (Localization.instSMulLocalization.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))))) R (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) htower))) c (RatFunc.mk.{u2} K hring hdomain p q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_smul RatFunc.mk_smulₓ'. -/
+theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q :=
by
by_cases hq : q = 0
· rw [hq, mk_zero, mk_zero, ← of_fraction_ring_smul, smul_zero]
·
rw [mk_eq_localization_mk _ hq, mk_eq_localization_mk _ hq, ← Localization.smul_mk, ←
of_fraction_ring_smul]
-#align ratfunc.mk_smul Ratfunc.mk_smul
+#align ratfunc.mk_smul RatFunc.mk_smul
-instance : IsScalarTower R K[X] (Ratfunc K) :=
+instance : IsScalarTower R K[X] (RatFunc K) :=
⟨fun c p q => q.inductionOn' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
end SMul
@@ -463,29 +604,35 @@ variable (K)
omit hdomain
-instance [Subsingleton K] : Subsingleton (Ratfunc K) :=
+instance [Subsingleton K] : Subsingleton (RatFunc K) :=
toFractionRing_injective.Subsingleton
-instance : Inhabited (Ratfunc K) :=
+instance : Inhabited (RatFunc K) :=
⟨0⟩
-instance [Nontrivial K] : Nontrivial (Ratfunc K) :=
- of_fraction_ring_injective.Nontrivial
+instance [Nontrivial K] : Nontrivial (RatFunc K) :=
+ ofFractionRing_injective.Nontrivial
+/- warning: ratfunc.to_fraction_ring_ring_equiv -> RatFunc.toFractionRingRingEquiv is a dubious translation:
+lean 3 declaration is
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K], RingEquiv.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))
+but is expected to have type
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K], RingEquiv.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquivₓ'. -/
/-- `ratfunc K` is isomorphic to the field of fractions of `K[X]`, as rings.
This is an auxiliary definition; `simp`-normal form is `is_localization.alg_equiv`.
-/
@[simps apply]
-def toFractionRingRingEquiv : Ratfunc K ≃+* FractionRing K[X]
+def toFractionRingRingEquiv : RatFunc K ≃+* FractionRing K[X]
where
toFun := toFractionRing
- invFun := of_fraction_ring
+ invFun := ofFractionRing
left_inv := fun ⟨_⟩ => rfl
right_inv _ := rfl
map_add' := fun ⟨_⟩ ⟨_⟩ => by simp [← of_fraction_ring_add]
map_mul' := fun ⟨_⟩ ⟨_⟩ => by simp [← of_fraction_ring_mul]
-#align ratfunc.to_fraction_ring_ring_equiv Ratfunc.toFractionRingRingEquiv
+#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquiv
omit hring
@@ -520,7 +667,7 @@ include hring
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
-instance : CommRing (Ratfunc K) where
+instance : CommRing (RatFunc K) where
add := (· + ·)
add_assoc := by
run_tac
@@ -590,15 +737,21 @@ variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R]
omit hring
+/- warning: ratfunc.map -> RatFunc.map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) -> (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))))
+but is expected to have type
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) -> (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map RatFunc.mapₓ'. -/
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `ratfunc R →* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
-def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) : Ratfunc R →* Ratfunc S
+def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) : RatFunc R →* RatFunc S
where
toFun f :=
- Ratfunc.liftOn f
- (fun n d => if h : φ d ∈ S[X]⁰ then of_fraction_ring (Localization.mk (φ n) ⟨φ d, h⟩) else 0)
+ RatFunc.liftOn f
+ (fun n d => if h : φ d ∈ S[X]⁰ then ofFractionRing (Localization.mk (φ n) ⟨φ d, h⟩) else 0)
fun p q p' q' hq hq' h =>
by
rw [dif_pos, dif_pos, of_fraction_ring.inj_eq, Localization.mk_eq_mk_iff]
@@ -622,17 +775,29 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
Localization.mk_mul, Submonoid.mk_mul_mk]
· rfl
· rfl
-#align ratfunc.map Ratfunc.map
-
-theorem map_apply_of_fraction_ring_mk [MonoidHomClass F R[X] S[X]] (φ : F)
+#align ratfunc.map RatFunc.map
+
+/- warning: ratfunc.map_apply_of_fraction_ring_mk -> RatFunc.map_apply_ofFractionRing_mk is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (n : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))), Eq.{succ u2} (RatFunc.{u2} S _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ) (RatFunc.ofFractionRing.{u1} R _inst_3 (Localization.mk.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.commRing.{u1} R _inst_3)) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CommRing.toRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.commRing.{u1} R _inst_3))))) n d))) (RatFunc.ofFractionRing.{u2} S _inst_4 (Localization.mk.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)) (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ n) (Subtype.mk.{succ u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (fun (x : Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) => Membership.Mem.{u2, u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Submonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4))))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Submonoid.setLike.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Monoid.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommMonoid.toMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (CommRing.toRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.commRing.{u2} S _inst_4)))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeSubtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) d)) (hφ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeBase.{succ u1, succ u1} (Subtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (coeSubtype.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) d) (Subtype.prop.{succ u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Membership.Mem.{u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) d)))))
+but is expected to have type
+ forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : MonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (RatFunc.ofFractionRing.{u1} S _inst_4 (Localization.mk.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)) (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ n) (Subtype.mk.{succ u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (fun (x : Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) => Membership.mem.{u1, u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Submonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4))))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Monoid.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommMonoid.toMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.commRing.{u1} S _inst_4)))))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) (hφ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d) (Subtype.prop.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) d)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mkₓ'. -/
+theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
(hφ : R[X]⁰ ≤ S[X]⁰.comap φ) (n : R[X]) (d : R[X]⁰) :
- map φ hφ (of_fraction_ring (Localization.mk n d)) =
- of_fraction_ring (Localization.mk (φ n) ⟨φ d, hφ d.Prop⟩) :=
+ map φ hφ (ofFractionRing (Localization.mk n d)) =
+ ofFractionRing (Localization.mk (φ n) ⟨φ d, hφ d.Prop⟩) :=
by
convert lift_on_of_fraction_ring_mk _ _ _ _
rw [dif_pos]
-#align ratfunc.map_apply_of_fraction_ring_mk Ratfunc.map_apply_of_fraction_ring_mk
-
+#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mk
+
+/- warning: ratfunc.map_injective -> RatFunc.map_injective is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))), (Function.Injective.{succ u1, succ u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) -> (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (fun (_x : Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) => Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) _inst_5))) φ)) -> (Function.Injective.{succ u1, succ u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)))
+but is expected to have type
+ forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : MonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F _inst_5 φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))), (Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (FunLike.coe.{succ u3, succ u2, succ u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) _x) (MulHomClass.toFunLike.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) _inst_5)) φ)) -> (Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_injective RatFunc.map_injectiveₓ'. -/
theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ)
(hf : Function.Injective φ) : Function.Injective (map φ hφ) :=
by
@@ -643,14 +808,20 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
exists_const, [anonymous], ← map_mul, hf.eq_iff] using h
· rfl
· rfl
-#align ratfunc.map_injective Ratfunc.map_injective
-
+#align ratfunc.map_injective RatFunc.map_injective
+
+/- warning: ratfunc.map_ring_hom -> RatFunc.mapRingHom is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))) -> (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))
+but is expected to have type
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))] (φ : F), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (CommSemiring.toSemiring.{u2} S (CommRing.toCommSemiring.{u2} S _inst_4))))))) -> (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_ring_hom RatFunc.mapRingHomₓ'. -/
/-- Lift a ring homomorphism that maps polynomials `φ : R[X] →+* S[X]`
to a `ratfunc R →+* ratfunc S`,
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) :
- Ratfunc R →+* Ratfunc S :=
+ RatFunc R →+* RatFunc S :=
{
map φ
hφ with
@@ -666,21 +837,33 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
Submonoid.coe_mul]
· rfl
· rfl }
-#align ratfunc.map_ring_hom Ratfunc.mapRingHom
-
+#align ratfunc.map_ring_hom RatFunc.mapRingHom
+
+/- warning: ratfunc.coe_map_ring_hom_eq_coe_map -> RatFunc.coe_mapRingHom_eq_coe_map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {S : Type.{u2}} {F : Type.{u3}} [_inst_3 : CommRing.{u1} R] [_inst_4 : CommRing.{u2} S] [_inst_5 : RingHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Submonoid.setLike.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.semiring.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))))))), Eq.{max (succ u1) (succ u2)} ((fun (_x : RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (RatFunc.mapRingHom.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))) (RatFunc.mapRingHom.{u1, u2, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) => (RatFunc.{u1} R _inst_3) -> (RatFunc.{u2} S _inst_4)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} R _inst_3) (RatFunc.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_3) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} R _inst_3) (CommRing.toRing.{u1} (RatFunc.{u1} R _inst_3) (RatFunc.instCommRing.{u1} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} S _inst_4) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} S _inst_4) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} S _inst_4) (CommRing.toRing.{u2} (RatFunc.{u2} S _inst_4) (RatFunc.instCommRing.{u2} S _inst_4))))))) (RatFunc.map.{u1, u2, u3} R S F _inst_3 _inst_4 (RingHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_3))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} S (Ring.toSemiring.{u2} S (CommRing.toRing.{u2} S _inst_4))) (Polynomial.ring.{u2} S (CommRing.toRing.{u2} S _inst_4)))) _inst_5) φ hφ))
+but is expected to have type
+ forall {R : Type.{u2}} {S : Type.{u1}} {F : Type.{u3}} [_inst_3 : CommRing.{u2} R] [_inst_4 : CommRing.{u1} S] [_inst_5 : RingHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))] (φ : F) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, u3} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))))) F (RingHomClass.toMonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) _inst_5) φ (nonZeroDivisors.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))))))), Eq.{max (succ u2) (succ u1)} (forall (a : RatFunc.{u2} R _inst_3), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))))) (RatFunc.mapRingHom.{u2, u1, u3} R S F _inst_3 _inst_4 _inst_5 φ hφ)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => RatFunc.{u1} S _inst_4) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))) (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4)))))) (MonoidHom.monoidHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) (RatFunc.{u1} S _inst_4) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} S _inst_4) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} S _inst_4) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} S _inst_4) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} S _inst_4) (RatFunc.instCommRing.{u1} S _inst_4))))))))) (RatFunc.map.{u2, u1, u3} R S F _inst_3 _inst_4 (RingHomClass.toMonoidHomClass.{u3, u2, u1} F (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4))) (Polynomial.semiring.{u1} S (CommSemiring.toSemiring.{u1} S (CommRing.toCommSemiring.{u1} S _inst_4)))) _inst_5) φ hφ))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_mapₓ'. -/
theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ) :
- (mapRingHom φ hφ : Ratfunc R → Ratfunc S) = map φ hφ :=
+ (mapRingHom φ hφ : RatFunc R → RatFunc S) = map φ hφ :=
rfl
-#align ratfunc.coe_map_ring_hom_eq_coe_map Ratfunc.coe_mapRingHom_eq_coe_map
-
+#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
+
+/- warning: ratfunc.lift_monoid_with_zero_hom -> RatFunc.liftMonoidWithZeroHom is a dubious translation:
+lean 3 declaration is
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) -> (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))
+but is expected to have type
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) -> (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHomₓ'. -/
-- TODO: Generalize to `fun_like` classes,
/-- Lift an monoid with zero homomorphism `R[X] →*₀ G₀` to a `ratfunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
-def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ) : Ratfunc R →*₀ G₀
+def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ) : RatFunc R →*₀ G₀
where
toFun f :=
- Ratfunc.liftOn f (fun p q => φ p / φ q) fun p q p' q' hq hq' h =>
+ RatFunc.liftOn f (fun p q => φ p / φ q) fun p q p' q' hq hq' h =>
by
cases subsingleton_or_nontrivial R
· rw [Subsingleton.elim p q, Subsingleton.elim p' q, Subsingleton.elim q' q]
@@ -703,14 +886,26 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
by
rw [← of_fraction_ring_zero, ← Localization.mk_zero (1 : R[X]⁰), lift_on_of_fraction_ring_mk]
simp only [map_zero, zero_div]
-#align ratfunc.lift_monoid_with_zero_hom Ratfunc.liftMonoidWithZeroHom
-
-theorem liftMonoidWithZeroHom_apply_of_fraction_ring_mk (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ)
+#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
+
+/- warning: ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk -> RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk is a dubious translation:
+lean 3 declaration is
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (d : coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))), Eq.{succ u1} G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (RatFunc.{u2} R _inst_3) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} G₀ G₀ G₀ (instHDiv.{u1} G₀ (DivInvMonoid.toHasDiv.{u1} G₀ (GroupWithZero.toDivInvMonoid.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ n) (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeSubtype.{succ u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) => Membership.Mem.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) d)))
+but is expected to have type
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) n) _inst_1)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ n) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mkₓ'. -/
+theorem liftMonoidWithZeroHom_apply_ofFractionRing_mk (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ)
(n : R[X]) (d : R[X]⁰) :
- liftMonoidWithZeroHom φ hφ (of_fraction_ring (Localization.mk n d)) = φ n / φ d :=
- liftOn_of_fraction_ring_mk _ _ _ _
-#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk Ratfunc.liftMonoidWithZeroHom_apply_of_fraction_ring_mk
-
+ liftMonoidWithZeroHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
+ liftOn_ofFractionRing_mk _ _ _ _
+#align ratfunc.lift_monoid_with_zero_hom_apply_of_fraction_ring_mk RatFunc.liftMonoidWithZeroHom_apply_ofFractionRing_mk
+
+/- warning: ratfunc.lift_monoid_with_zero_hom_injective -> RatFunc.liftMonoidWithZeroHom_injective is a dubious translation:
+lean 3 declaration is
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, u1, max u1 u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (GroupWithZero.noZeroDivisors.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) G₀ (coeFn.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (fun (_x : MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) => (RatFunc.{u2} R _inst_3) -> G₀) (MonoidWithZeroHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ'))
+but is expected to have type
+ forall {G₀ : Type.{u1}} {R : Type.{u2}} [_inst_1 : CommGroupWithZero.{u1} G₀] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) φ (nonZeroDivisors.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, max u1 u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (GroupWithZero.noZeroDivisors.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) G₀ (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => G₀) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_3) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))))) (MulOneClass.toMul.{u1} G₀ (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))) (MonoidHomClass.toMulHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} G₀ (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1)))) (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} R _inst_3) G₀ (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} G₀ (GroupWithZero.toMonoidWithZero.{u1} G₀ (CommGroupWithZero.toGroupWithZero.{u1} G₀ _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} G₀ R _inst_1 _inst_3 φ hφ'))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injectiveₓ'. -/
theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ G₀⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftMonoidWithZeroHom φ hφ') :=
@@ -724,11 +919,17 @@ theorem liftMonoidWithZeroHom_injective [Nontrivial R] (φ : R[X] →*₀ G₀)
all_goals exact map_ne_zero_of_mem_nonZeroDivisors _ hφ (SetLike.coe_mem _)
· exact fun _ => rfl
· exact fun _ => rfl
-#align ratfunc.lift_monoid_with_zero_hom_injective Ratfunc.liftMonoidWithZeroHom_injective
-
+#align ratfunc.lift_monoid_with_zero_hom_injective RatFunc.liftMonoidWithZeroHom_injective
+
+/- warning: ratfunc.lift_ring_hom -> RatFunc.liftRingHom is a dubious translation:
+lean 3 declaration is
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) -> (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))
+but is expected to have type
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))), (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) -> (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom RatFunc.liftRingHomₓ'. -/
/-- Lift an injective ring homomorphism `R[X] →+* L` to a `ratfunc R →+* L`
by mapping both the numerator and denominator and quotienting them. -/
-def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : Ratfunc R →+* L :=
+def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc R →+* L :=
{ liftMonoidWithZeroHom φ.toMonoidWithZeroHom hφ with
map_add' := fun x y => by
simp only [MonoidWithZeroHom.toFun_eq_coe]
@@ -749,18 +950,30 @@ def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : Ratfunc
exact nonZeroDivisors.ne_zero (hφ (SetLike.coe_mem _))
· rfl
· rfl }
-#align ratfunc.lift_ring_hom Ratfunc.liftRingHom
-
-theorem liftRingHom_apply_of_fraction_ring_mk (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) (n : R[X])
- (d : R[X]⁰) : liftRingHom φ hφ (of_fraction_ring (Localization.mk n d)) = φ n / φ d :=
- liftMonoidWithZeroHom_apply_of_fraction_ring_mk _ _ _ _
-#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk Ratfunc.liftRingHom_apply_of_fraction_ring_mk
-
+#align ratfunc.lift_ring_hom RatFunc.liftRingHom
+
+/- warning: ratfunc.lift_ring_hom_apply_of_fraction_ring_mk -> RatFunc.liftRingHom_apply_ofFractionRing_mk is a dubious translation:
+lean 3 declaration is
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) (n : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (d : coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))), Eq.{succ u1} L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (RatFunc.{u2} R _inst_3) -> L) (RingHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CommRing.toRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} L L L (instHDiv.{u1} L (DivInvMonoid.toHasDiv.{u1} L (DivisionRing.toDivInvMonoid.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ n) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (coeSubtype.{succ u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) => Membership.Mem.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.hasMem.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) d)))
+but is expected to have type
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) (n : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (d : Subtype.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))))) x (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ) (RatFunc.ofFractionRing.{u2} R _inst_3 (Localization.mk.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3)) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.commRing.{u2} R _inst_3))))) n d))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) n) _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ n) (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ (Subtype.val.{succ u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => Membership.mem.{u2, u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Set.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Set.instMembershipSet.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) x (SetLike.coe.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Submonoid.instSetLikeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) d)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mkₓ'. -/
+theorem liftRingHom_apply_ofFractionRing_mk (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) (n : R[X])
+ (d : R[X]⁰) : liftRingHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
+ liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
+#align ratfunc.lift_ring_hom_apply_of_fraction_ring_mk RatFunc.liftRingHom_apply_ofFractionRing_mk
+
+/- warning: ratfunc.lift_ring_hom_injective -> RatFunc.liftRingHom_injective is a dubious translation:
+lean 3 declaration is
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) -> L) (RingHom.hasCoeToFun.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Preorder.toHasLe.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (SetLike.partialOrder.{u2, u2} (Submonoid.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Submonoid.setLike.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RingHomClass.toMonoidWithZeroHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, u1, max u2 u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (Semiring.toMonoidWithZero.{u1} L (Ring.toSemiring.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)) (Field.isDomain.{u1} L _inst_2)) (RingHomClass.toMonoidWithZeroHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))) (RingHom.ringHomClass.{u2, u1} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) L (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_3))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)))))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) L (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (fun (_x : RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) => (RatFunc.{u2} R _inst_3) -> L) (RingHom.hasCoeToFun.{u2, u1} (RatFunc.{u2} R _inst_3) L (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (NonAssocRing.toNonAssocSemiring.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ'))
+but is expected to have type
+ forall {L : Type.{u1}} {R : Type.{u2}} [_inst_2 : Field.{u1} L] [_inst_3 : CommRing.{u2} R] [_inst_5 : Nontrivial.{u2} R] (φ : RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (hφ : Function.Injective.{succ u2, succ u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (fun (_x : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) φ)) (hφ' : optParam.{0} (LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))))) (Submonoid.comap.{u2, u1, max u1 u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u2, max u1 u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_2)) (Field.isDomain.{u1} L _inst_2)) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) φ hφ)), Function.Injective.{succ u2, succ u1} (RatFunc.{u2} R _inst_3) L (FunLike.coe.{max (succ u1) (succ u2), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) (fun (_x : RatFunc.{u2} R _inst_3) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} R _inst_3) => L) _x) (MulHomClass.toFunLike.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_3) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2))))) (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} R _inst_3) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_3) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_3) (RatFunc.instCommRing.{u2} R _inst_3)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_2)))))))) (RatFunc.liftRingHom.{u1, u2} L R _inst_2 _inst_3 φ hφ'))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_injective RatFunc.liftRingHom_injectiveₓ'. -/
theorem liftRingHom_injective [Nontrivial R] (φ : R[X] →+* L) (hφ : Function.Injective φ)
(hφ' : R[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftRingHom φ hφ') :=
liftMonoidWithZeroHom_injective _ hφ
-#align ratfunc.lift_ring_hom_injective Ratfunc.liftRingHom_injective
+#align ratfunc.lift_ring_hom_injective RatFunc.liftRingHom_injective
end LiftHom
@@ -770,9 +983,9 @@ include hdomain
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-instance : Field (Ratfunc K) :=
- { Ratfunc.commRing K,
- Ratfunc.nontrivial K with
+instance : Field (RatFunc K) :=
+ { RatFunc.instCommRing K,
+ RatFunc.instNontrivial K with
inv := Inv.inv
inv_zero := by
run_tac
@@ -793,9 +1006,9 @@ section IsFractionRing
include hdomain
-instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (Ratfunc K)
+instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
where
- toFun x := Ratfunc.mk (algebraMap _ _ x) 1
+ toFun x := RatFunc.mk (algebraMap _ _ x) 1
map_add' x y := by simp only [mk_one', RingHom.map_add, of_fraction_ring_add]
map_mul' x y := by simp only [mk_one', RingHom.map_mul, of_fraction_ring_mul]
map_one' := by simp only [mk_one', RingHom.map_one, of_fraction_ring_one]
@@ -809,35 +1022,71 @@ instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (Ratfunc K)
variable {K}
-theorem mk_one (x : K[X]) : Ratfunc.mk x 1 = algebraMap _ _ x :=
+/- warning: ratfunc.mk_one -> RatFunc.mk_one is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_one RatFunc.mk_oneₓ'. -/
+theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
-#align ratfunc.mk_one Ratfunc.mk_one
-
-theorem of_fraction_ring_algebraMap (x : K[X]) :
- of_fraction_ring (algebraMap _ (FractionRing K[X]) x) = algebraMap _ _ x := by
+#align ratfunc.mk_one RatFunc.mk_one
+
+/- warning: ratfunc.of_fraction_ring_algebra_map -> RatFunc.ofFractionRing_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x)
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMapₓ'. -/
+theorem ofFractionRing_algebraMap (x : K[X]) :
+ ofFractionRing (algebraMap _ (FractionRing K[X]) x) = algebraMap _ _ x := by
rw [← mk_one, mk_one']
-#align ratfunc.of_fraction_ring_algebra_map Ratfunc.of_fraction_ring_algebraMap
-
+#align ratfunc.of_fraction_ring_algebra_map RatFunc.ofFractionRing_algebraMap
+
+/- warning: ratfunc.mk_eq_div -> RatFunc.mk_eq_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.mk.{u1} K hring hdomain p q) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.mk_eq_div RatFunc.mk_eq_divₓ'. -/
@[simp]
-theorem mk_eq_div (p q : K[X]) : Ratfunc.mk p q = algebraMap _ _ p / algebraMap _ _ q := by
+theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap _ _ q := by
simp only [mk_eq_div', of_fraction_ring_div, of_fraction_ring_algebra_map]
-#align ratfunc.mk_eq_div Ratfunc.mk_eq_div
-
+#align ratfunc.mk_eq_div RatFunc.mk_eq_div
+
+/- warning: ratfunc.div_smul -> RatFunc.div_smul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : Monoid.{u2} R] [_inst_2 : DistribMulAction.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))] [_inst_3 : IsScalarTower.{u2, u1, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) (Mul.toSMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2)))] (c : R) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u1} (RatFunc.{u1} K hring) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (SMul.smul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) c p)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) (SMul.smul.{u2, u1} R (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u2} K hring R (Localization.hasSmul.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) R (SMulZeroClass.toHasSmul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddZeroClass.toHasZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (DistribSMul.toSmulZeroClass.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toAddCommGroupWithOne.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) _inst_2))) _inst_3)) c (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : Monoid.{u1} R] [_inst_2 : DistribMulAction.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))] [_inst_3 : IsScalarTower.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) (Algebra.toSMul.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))] (c : R) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q)) (HSMul.hSMul.{u1, u2, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHSMul.{u1, u2} R ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (RatFunc.instSMulRatFunc.{u2, u1} K hring R (Localization.instSMulLocalization.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring)) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommRing.toCommSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commRing.{u2} K hring))))) R (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2))) _inst_3))) c (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (HSMul.hSMul.{u1, u2, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (instHSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (SMulZeroClass.toSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.zero.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (DistribSMul.toSMulZeroClass.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoid.toAddZeroClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring)))))) (DistribMulAction.toDistribSMul.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (AddGroupWithOne.toAddMonoidWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Ring.toAddGroupWithOne.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.ring.{u2} K (CommRing.toRing.{u2} K hring))))) _inst_2)))) c p)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.div_smul RatFunc.div_smulₓ'. -/
@[simp]
theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X] K[X]] (c : R)
(p q : K[X]) :
- algebraMap _ (Ratfunc K) (c • p) / algebraMap _ _ q =
+ algebraMap _ (RatFunc K) (c • p) / algebraMap _ _ q =
c • (algebraMap _ _ p / algebraMap _ _ q) :=
by rw [← mk_eq_div, mk_smul, mk_eq_div]
-#align ratfunc.div_smul Ratfunc.div_smul
-
+#align ratfunc.div_smul RatFunc.div_smul
+
+/- warning: ratfunc.algebra_map_apply -> RatFunc.algebraMap_apply is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} [_inst_1 : CommSemiring.{u2} R] [_inst_2 : Algebra.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] (x : R), Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => R -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u2, u1} R (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u2, u1} R (RatFunc.{u1} K hring) _inst_1 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u2} K hring hdomain R _inst_1 _inst_2)) x) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => R -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (algebraMap.{u2, u1} R (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_1 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_2) x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {R : Type.{u1}} [_inst_1 : CommSemiring.{u1} R] [_inst_2 : Algebra.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))] (x : R), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) x) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u2} R (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u1, u2} R (RatFunc.{u2} K hring) _inst_1 (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u1} K hring hdomain R _inst_1 _inst_2)) x) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) a) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) (OfNat.ofNat.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.one.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => RatFunc.{u2} K hring) x) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) a) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) x) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, succ u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _x) (MulHomClass.toFunLike.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, u2} (RingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (RingHom.instRingHomClassRingHom.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))) (algebraMap.{u1, u2} R (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_1 (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) _inst_2) x)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (OfNat.ofNat.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) 1 (One.toOfNat1.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.one.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply RatFunc.algebraMap_applyₓ'. -/
theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
- algebraMap R (Ratfunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 :=
+ algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 :=
by
rw [← mk_eq_div]
rfl
-#align ratfunc.algebra_map_apply Ratfunc.algebraMap_apply
-
+#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
+
+/- warning: ratfunc.map_apply_div_ne_zero -> RatFunc.map_apply_div_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F hring _inst_1 _inst_3 φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ p)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ q))))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), (Ne.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) q (OfNat.ofNat.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) 0 (Zero.toOfNat0.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.zero.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) -> (Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F hring _inst_1 _inst_3 φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ q)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ q))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zeroₓ'. -/
theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) = algebraMap _ _ (φ p) / algebraMap _ _ (φ q) :=
@@ -845,21 +1094,33 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
have hq' : φ q ≠ 0 := nonZeroDivisors.ne_zero (hφ (mem_non_zero_divisors_iff_ne_zero.mpr hq))
simp only [← mk_eq_div, mk_eq_localization_mk _ hq, map_apply_of_fraction_ring_mk,
mk_eq_localization_mk _ hq', [anonymous]]
-#align ratfunc.map_apply_div_ne_zero Ratfunc.map_apply_div_ne_zero
-
+#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
+
+/- warning: ratfunc.map_apply_div -> RatFunc.map_apply_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidWithZeroHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F hring _inst_1 (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3) φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3)))) φ p)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))) _inst_3)))) φ q)))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidWithZeroHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K hring) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F hring _inst_1 (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3) φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ q)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u2} R _inst_1) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) p) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ p)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) q) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (MonoidWithZeroHomClass.toMonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) _inst_3))) φ q)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply_div RatFunc.map_apply_divₓ'. -/
@[simp]
theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) = algebraMap _ _ (φ p) / algebraMap _ _ (φ q) :=
by
rcases eq_or_ne q 0 with (rfl | hq)
- · have : (0 : Ratfunc K) = algebraMap K[X] _ 0 / algebraMap K[X] _ 1 := by simp
+ · have : (0 : RatFunc K) = algebraMap K[X] _ 0 / algebraMap K[X] _ 1 := by simp
rw [map_zero, map_zero, map_zero, div_zero, div_zero, this, map_apply_div_ne_zero, map_one,
map_one, div_one, map_zero, map_zero]
exact one_ne_zero
exact map_apply_div_ne_zero _ _ _ _ hq
-#align ratfunc.map_apply_div Ratfunc.map_apply_div
-
+#align ratfunc.map_apply_div RatFunc.map_apply_div
+
+/- warning: ratfunc.lift_monoid_with_zero_hom_apply_div -> RatFunc.liftMonoidWithZeroHom_apply_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} [_inst_1 : CommGroupWithZero.{u2} L] (φ : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u2 u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u1, u2} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) φ (nonZeroDivisors.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (RatFunc.{u1} K hring) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u2, u1} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (GroupWithZero.toDivInvMonoid.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ p) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ q))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {L : Type.{u1}} [_inst_1 : CommGroupWithZero.{u1} L] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) φ (nonZeroDivisors.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) (fun (_x : RatFunc.{u2} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (MulOneClass.toMul.{u2} (RatFunc.{u2} K hring) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} K hring) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ p) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_divₓ'. -/
@[simp]
theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
(φ : MonoidWithZeroHom K[X] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (p q : K[X]) :
@@ -869,85 +1130,151 @@ theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
· simp only [div_zero, map_zero]
simpa only [← mk_eq_div, mk_eq_localization_mk _ hq,
lift_monoid_with_zero_hom_apply_of_fraction_ring_mk]
-#align ratfunc.lift_monoid_with_zero_hom_apply_div Ratfunc.liftMonoidWithZeroHom_apply_div
-
+#align ratfunc.lift_monoid_with_zero_hom_apply_div RatFunc.liftMonoidWithZeroHom_apply_div
+
+/- warning: ratfunc.lift_ring_hom_apply_div -> RatFunc.liftRingHom_apply_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (φ : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (RingHom.ringHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (RatFunc.{u1} K hring) -> L) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.liftRingHom.{u2, u1} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ p) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.ring.{u1} K (CommRing.toRing.{u1} K hring)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ q))
+but is expected to have type
+ forall {K : Type.{u2}} [hring : CommRing.{u2} K] [hdomain : IsDomain.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (φ : RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (p : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (q : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (a : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) a) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) (fun (_x : RatFunc.{u2} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K hring) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} K hring) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K hring) (RatFunc.instCommRing.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (RatFunc.liftRingHom.{u1, u2} L K _inst_1 hring φ hφ) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) q) (RatFunc.{u2} K hring) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) p) (RatFunc.instDivRatFunc.{u2} K hring hdomain)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) p) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => RatFunc.{u2} K hring) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K hring) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain))))))))) (algebraMap.{u2, u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (RatFunc.{u2} K hring) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K hring) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K hring) (Field.toSemifield.{u2} (RatFunc.{u2} K hring) (RatFunc.instFieldRatFunc.{u2} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} K hring hdomain (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)) (Algebra.id.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.commSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ p) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (fun (_x : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_divₓ'. -/
@[simp]
theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
liftMonoidWithZeroHom_apply_div _ _ _ _
-#align ratfunc.lift_ring_hom_apply_div Ratfunc.liftRingHom_apply_div
+#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_div
variable (K)
-theorem of_fraction_ring_comp_algebraMap :
- of_fraction_ring ∘ algebraMap K[X] (FractionRing K[X]) = algebraMap _ _ :=
- funext of_fraction_ring_algebraMap
-#align ratfunc.of_fraction_ring_comp_algebra_map Ratfunc.of_fraction_ring_comp_algebraMap
-
-theorem algebraMap_injective : Function.Injective (algebraMap K[X] (Ratfunc K)) :=
+/- warning: ratfunc.of_fraction_ring_comp_algebra_map -> RatFunc.ofFractionRing_comp_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (Function.comp.{succ u1, succ u1, succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionRing.toRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toDivisionRing.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.field.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.isDomain.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+but is expected to have type
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (RatFunc.{u1} K hring)) (Function.comp.{succ u1, succ u1, succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Field.toSemifield.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (FractionRing.instFieldFractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (CommRing.toRing.{u1} K hring) hdomain))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMapₓ'. -/
+theorem ofFractionRing_comp_algebraMap :
+ ofFractionRing ∘ algebraMap K[X] (FractionRing K[X]) = algebraMap _ _ :=
+ funext ofFractionRing_algebraMap
+#align ratfunc.of_fraction_ring_comp_algebra_map RatFunc.ofFractionRing_comp_algebraMap
+
+/- warning: ratfunc.algebra_map_injective -> RatFunc.algebraMap_injective is a dubious translation:
+lean 3 declaration is
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Function.Injective.{succ u1, succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+but is expected to have type
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Function.Injective.{succ u1, succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_injective RatFunc.algebraMap_injectiveₓ'. -/
+theorem algebraMap_injective : Function.Injective (algebraMap K[X] (RatFunc K)) :=
by
rw [← of_fraction_ring_comp_algebra_map]
exact of_fraction_ring_injective.comp (IsFractionRing.injective _ _)
-#align ratfunc.algebra_map_injective Ratfunc.algebraMap_injective
-
+#align ratfunc.algebra_map_injective RatFunc.algebraMap_injective
+
+/- warning: ratfunc.algebra_map_eq_zero_iff -> RatFunc.algebraMap_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, Iff (Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} (RatFunc.{u1} K hring) 0 (OfNat.mk.{u1} (RatFunc.{u1} K hring) 0 (Zero.zero.{u1} (RatFunc.{u1} K hring) (RatFunc.hasZero.{u1} K hring))))) (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))
+but is expected to have type
+ forall (K : Type.{u1}) [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, Iff (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (RatFunc.instZeroRatFunc.{u1} K hring)))) (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_eq_zero_iff RatFunc.algebraMap_eq_zero_iffₓ'. -/
@[simp]
-theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (Ratfunc K) x = 0 ↔ x = 0 :=
+theorem algebraMap_eq_zero_iff {x : K[X]} : algebraMap K[X] (RatFunc K) x = 0 ↔ x = 0 :=
⟨(injective_iff_map_eq_zero _).mp (algebraMap_injective K) _, fun hx => by
rw [hx, RingHom.map_zero]⟩
-#align ratfunc.algebra_map_eq_zero_iff Ratfunc.algebraMap_eq_zero_iff
+#align ratfunc.algebra_map_eq_zero_iff RatFunc.algebraMap_eq_zero_iff
variable {K}
-theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (Ratfunc K) x ≠ 0 :=
+/- warning: ratfunc.algebra_map_ne_zero -> RatFunc.algebraMap_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} (RatFunc.{u1} K hring) 0 (OfNat.mk.{u1} (RatFunc.{u1} K hring) 0 (Zero.zero.{u1} (RatFunc.{u1} K hring) (RatFunc.hasZero.{u1} K hring)))))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) x (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) x) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) x) (RatFunc.instZeroRatFunc.{u1} K hring))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zeroₓ'. -/
+theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (RatFunc K) x ≠ 0 :=
mt (algebraMap_eq_zero_iff K).mp hx
-#align ratfunc.algebra_map_ne_zero Ratfunc.algebraMap_ne_zero
+#align ratfunc.algebra_map_ne_zero RatFunc.algebraMap_ne_zero
section LiftAlgHom
variable {L R S : Type _} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [Algebra S K[X]]
[Algebra S L] [Algebra S R[X]] (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
+/- warning: ratfunc.map_alg_hom -> RatFunc.mapAlgHom is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_2))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_2) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instFieldRatFunc.{u2} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_alg_hom RatFunc.mapAlgHomₓ'. -/
/-- Lift an algebra homomorphism that maps polynomials `φ : K[X] →ₐ[S] R[X]`
to a `ratfunc K →ₐ[S] ratfunc R`,
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
-def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) : Ratfunc K →ₐ[S] Ratfunc R :=
+def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) : RatFunc K →ₐ[S] RatFunc R :=
{ mapRingHom φ hφ with
commutes' := fun r => by
simp_rw [RingHom.toFun_eq_coe, coe_map_ring_hom_eq_coe_map, algebraMap_apply r, map_apply_div,
map_one, AlgHom.commutes] }
-#align ratfunc.map_alg_hom Ratfunc.mapAlgHom
-
+#align ratfunc.map_alg_hom RatFunc.mapAlgHom
+
+/- warning: ratfunc.coe_map_alg_hom_eq_coe_map -> RatFunc.coe_mapAlgHom_eq_coe_map is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {R : Type.{u2}} {S : Type.{u3}} [_inst_2 : CommRing.{u2} R] [_inst_3 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_7 : Algebra.{u3, u2} S (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))))))), Eq.{max (succ u1) (succ u2)} ((fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) (RatFunc.mapAlgHom.{u1, u2, u3} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_2) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.field.{u2} R _inst_2 _inst_3)))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) (RatFunc.algebra.{u2, u3} R _inst_2 _inst_3 S _inst_4 _inst_7)) (RatFunc.mapAlgHom.{u1, u2, u3} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) => (RatFunc.{u1} K hring) -> (RatFunc.{u2} R _inst_2)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K hring) (RatFunc.{u2} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (CommRing.toRing.{u1} (RatFunc.{u1} K hring) (RatFunc.instCommRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_2) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_2) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_2) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_2) (RatFunc.instCommRing.{u2} R _inst_2))))))) (RatFunc.map.{u1, u2, max u1 u2} K R (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) hring _inst_2 (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_2))) _inst_5 _inst_7))) φ hφ))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {R : Type.{u1}} {S : Type.{u2}} [_inst_2 : CommRing.{u1} R] [_inst_3 : IsDomain.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))] [_inst_4 : CommSemiring.{u2} S] [_inst_5 : Algebra.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_7 : Algebra.{u2, u1} S (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))] (φ : AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u1, max u3 u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))))) (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7))) φ (nonZeroDivisors.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))))))), Eq.{max (succ u3) (succ u1)} (forall (a : RatFunc.{u3} K hring), (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) a) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (SMulZeroClass.toSMul.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u2, u1} S (RatFunc.{u1} R _inst_2) (AddMonoid.toZero.{u1} (RatFunc.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S (RatFunc.{u1} R _inst_2) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} R _inst_2) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))))) (DistribMulAction.toDistribSMul.{u2, u1} S (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3))))))) (Algebra.toModule.{u2, u1} S (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7) (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)) (AlgHom.algHomClass.{u2, u3, u1} S (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} R _inst_2) (Field.toSemifield.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instFieldRatFunc.{u1} R _inst_2 _inst_3)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u2} R _inst_2 _inst_3 S _inst_4 _inst_7)))))) (RatFunc.mapAlgHom.{u3, u1, u2} K hring hdomain R S _inst_2 _inst_3 _inst_4 _inst_5 _inst_7 φ hφ)) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K hring) => RatFunc.{u1} R _inst_2) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulOneClass.toMul.{u3} (RatFunc.{u3} K hring) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring))))))) (MulOneClass.toMul.{u1} (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (MonoidHomClass.toMulHomClass.{max u3 u1, u3, u1} (MonoidHom.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))) (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2)))))) (MonoidHom.monoidHomClass.{u3, u1} (RatFunc.{u3} K hring) (RatFunc.{u1} R _inst_2) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K hring) (RatFunc.instCommRing.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} R _inst_2) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} R _inst_2) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} R _inst_2) (CommRing.toCommSemiring.{u1} (RatFunc.{u1} R _inst_2) (RatFunc.instCommRing.{u1} R _inst_2))))))))) (RatFunc.map.{u3, u1, max u3 u1} K R (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) hring _inst_2 (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_2))) _inst_5 _inst_7))) φ hφ))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_mapₓ'. -/
theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
- (mapAlgHom φ hφ : Ratfunc K → Ratfunc R) = map φ hφ :=
+ (mapAlgHom φ hφ : RatFunc K → RatFunc R) = map φ hφ :=
rfl
-#align ratfunc.coe_map_alg_hom_eq_coe_map Ratfunc.coe_mapAlgHom_eq_coe_map
-
+#align ratfunc.coe_map_alg_hom_eq_coe_map RatFunc.coe_mapAlgHom_eq_coe_map
+
+/- warning: ratfunc.lift_alg_hom -> RatFunc.liftAlgHom is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6), (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Preorder.toLE.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) -> (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6)
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom RatFunc.liftAlgHomₓ'. -/
/-- Lift an injective algebra homomorphism `K[X] →ₐ[S] L` to a `ratfunc K →ₐ[S] L`
by mapping both the numerator and denominator and quotienting them. -/
-def liftAlgHom : Ratfunc K →ₐ[S] L :=
+def liftAlgHom : RatFunc K →ₐ[S] L :=
{ liftRingHom φ.toRingHom hφ with
commutes' := fun r => by
simp_rw [RingHom.toFun_eq_coe, AlgHom.toRingHom_eq_coe, algebraMap_apply r,
lift_ring_hom_apply_div, AlgHom.coe_toRingHom, map_one, div_one, AlgHom.commutes] }
-#align ratfunc.lift_alg_hom Ratfunc.liftAlgHom
-
-theorem liftAlgHom_apply_of_fraction_ring_mk (n : K[X]) (d : K[X]⁰) :
- liftAlgHom φ hφ (of_fraction_ring (Localization.mk n d)) = φ n / φ d :=
- liftMonoidWithZeroHom_apply_of_fraction_ring_mk _ _ _ _
-#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk Ratfunc.liftAlgHom_apply_of_fraction_ring_mk
-
+#align ratfunc.lift_alg_hom RatFunc.liftAlgHom
+
+/- warning: ratfunc.lift_alg_hom_apply_of_fraction_ring_mk -> RatFunc.liftAlgHom_apply_ofFractionRing_mk is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (n : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (d : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (RatFunc.ofFractionRing.{u1} K hring (Localization.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) n d))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ n) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (coeSubtype.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (fun (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) => Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) d)))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u1} S] [_inst_5 : Algebra.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (n : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (d : Subtype.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (SetLike.instMembership.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) x (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) (RatFunc.ofFractionRing.{u3} K hring (Localization.mk.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring)) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring))))) n d))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u2, u1} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (RatFunc.ofFractionRing.{u3} K hring (Localization.mk.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring)) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommRing.toCommSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commRing.{u3} K hring))))) n d))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) (Subtype.val.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Set.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Set.instMembershipSet.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) x (SetLike.coe.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) d)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) n) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ n) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ (Subtype.val.{succ u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => Membership.mem.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Set.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Set.instMembershipSet.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) x (SetLike.coe.{u3, u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Submonoid.instSetLikeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) d)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mkₓ'. -/
+theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
+ liftAlgHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
+ liftMonoidWithZeroHom_apply_ofFractionRing_mk _ _ _ _
+#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mk
+
+/- warning: ratfunc.lift_alg_hom_injective -> RatFunc.liftAlgHom_injective is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : Function.Injective.{succ u1, succ u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ)) (hφ' : optParam.{0} (LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (MonoidWithZeroHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6)))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (IsDomain.to_noZeroDivisors.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)) (Field.isDomain.{u2} L _inst_1)) (RingHomClass.toMonoidWithZeroHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ hφ)), Function.Injective.{succ u1, succ u2} (RatFunc.{u1} K hring) L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ'))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u1}} {S : Type.{u2}} [_inst_1 : Field.{u1} L] [_inst_4 : CommSemiring.{u2} S] [_inst_5 : Algebra.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))] (φ : AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (hφ : Function.Injective.{succ u3, succ u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u2, u1} S L (AddMonoid.toZero.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S L (AddMonoid.toAddZeroClass.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u1} S L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Module.toDistribMulAction.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u2, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))))) φ)) (hφ' : optParam.{0} (LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u1, max u3 u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (nonZeroDivisors_le_comap_nonZeroDivisors_of_injective.{u3, max u3 u1, u1} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (IsDomain.to_noZeroDivisors.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)) (Field.isDomain.{u1} L _inst_1)) (RingHomClass.toMonoidWithZeroHomClass.{max u3 u1, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u2, u3, u1} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_5 _inst_6))) φ hφ)), Function.Injective.{succ u3, succ u1} (RatFunc.{u3} K hring) L (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u2, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u2, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u2, u1} S L (AddMonoid.toZero.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u2, u1} S L (AddMonoid.toAddZeroClass.{u1} L (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u2, u1} S L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u1, u2, u3, u1} (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u2} S (Semiring.toMonoidWithZero.{u2} S (CommSemiring.toSemiring.{u2} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Module.toDistribMulAction.{u2, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u2, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u2, u1} S L (CommSemiring.toSemiring.{u2} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (Algebra.toModule.{u2, u1} S L _inst_4 (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u3 u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u2, u3, u1} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u1, u2} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ'))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injectiveₓ'. -/
theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective φ)
(hφ' : K[X]⁰ ≤ L⁰.comap φ := nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ hφ) :
Function.Injective (liftAlgHom φ hφ') :=
liftMonoidWithZeroHom_injective _ hφ
-#align ratfunc.lift_alg_hom_injective Ratfunc.liftAlgHom_injective
-
+#align ratfunc.lift_alg_hom_injective RatFunc.liftAlgHom_injective
+
+/- warning: ratfunc.lift_alg_hom_apply_div -> RatFunc.liftAlgHom_apply_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u3} S] [_inst_5 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))] [_inst_6 : Algebra.{u3, u2} S L _inst_4 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) => (RatFunc.{u1} K hring) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K hring) L _inst_4 (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.liftAlgHom.{u1, u2, u3} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ p) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) L _inst_4 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_5 _inst_6) φ q))
+but is expected to have type
+ forall {K : Type.{u3}} [hring : CommRing.{u3} K] [hdomain : IsDomain.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_4 : CommSemiring.{u1} S] [_inst_5 : Algebra.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))] [_inst_6 : Algebra.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (p : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (q : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (a : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) a) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (RatFunc.{u3} K hring) (fun (_x : RatFunc.{u3} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K hring) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toZero.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K hring) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K hring) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K hring) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) S (RatFunc.{u3} K hring) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K hring) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K hring) _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K hring) L _inst_4 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K hring hdomain S _inst_4 _inst_5) _inst_6))))) (RatFunc.liftAlgHom.{u3, u2, u1} K hring hdomain L S _inst_1 _inst_4 _inst_5 _inst_6 φ hφ) (HDiv.hDiv.{u3, u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) q) (RatFunc.{u3} K hring) (instHDiv.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) p) (RatFunc.instDivRatFunc.{u3} K hring hdomain)) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) p) (FunLike.coe.{succ u3, succ u3, succ u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => RatFunc.{u3} K hring) _x) (MulHomClass.toFunLike.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u3, u3, u3} (RingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))))) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K hring) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain))))))))) (algebraMap.{u3, u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (RatFunc.{u3} K hring) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K hring) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K hring) (Field.toSemifield.{u3} (RatFunc.{u3} K hring) (RatFunc.instFieldRatFunc.{u3} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u3} K hring hdomain (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)) (Algebra.id.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.commSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) q))) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) q) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) p) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ p) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (fun (_x : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring)))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) _inst_5)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_4) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_4 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_6)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) L _inst_4 (Polynomial.semiring.{u3} K (CommSemiring.toSemiring.{u3} K (CommRing.toCommSemiring.{u3} K hring))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_5 _inst_6))))) φ q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_divₓ'. -/
@[simp]
theorem liftAlgHom_apply_div (p q : K[X]) :
liftAlgHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
liftMonoidWithZeroHom_apply_div _ _ _ _
-#align ratfunc.lift_alg_hom_apply_div Ratfunc.liftAlgHom_apply_div
+#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_div
end LiftAlgHom
@@ -958,7 +1285,7 @@ omit hdomain
include hdomain
/-- `ratfunc K` is the field of fractions of the polynomials over `K`. -/
-instance : IsFractionRing K[X] (Ratfunc K)
+instance : IsFractionRing K[X] (RatFunc K)
where
map_units y := by
rw [← of_fraction_ring_algebra_map] <;>
@@ -976,65 +1303,107 @@ instance : IsFractionRing K[X] (Ratfunc K)
variable {K}
+/- warning: ratfunc.lift_on_div -> RatFunc.liftOn_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (p' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q' : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (hq : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (hq' : Membership.Mem.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (IsDomain.to_nontrivial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H' : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q' (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (H : optParam.{0} (forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) -> (Eq.{u2} P (f p q) (f p' q'))) (fun {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {p' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q' : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} (hq : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (hq' : Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) q' (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (h : Eq.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q' p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) q p')) => H' p q p' q' (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q hq) (nonZeroDivisors.ne_zero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Polynomial.nontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (IsDomain.toNontrivial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) hdomain)) q' hq') h)), Eq.{u2} P (RatFunc.liftOn.{u1, u2} K hring P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on_div RatFunc.liftOn_divₓ'. -/
@[simp]
theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (hq : q ≠ 0) (hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (hq : q ∈ K[X]⁰) (hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
fun p q p' q' hq hq' h => H' (nonZeroDivisors.ne_zero hq) (nonZeroDivisors.ne_zero hq') h) :
- (algebraMap _ (Ratfunc K) p / algebraMap _ _ q).liftOn f @H = f p q := by
+ (algebraMap _ (RatFunc K) p / algebraMap _ _ q).liftOn f @H = f p q := by
rw [← mk_eq_div, lift_on_mk _ _ f f0 @H']
-#align ratfunc.lift_on_div Ratfunc.liftOn_div
-
+#align ratfunc.lift_on_div RatFunc.liftOn_div
+
+/- warning: ratfunc.lift_on'_div -> RatFunc.liftOn'_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (f : (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) -> (forall (H : forall {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))} {a : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) a (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (Eq.{u2} P (f (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) a p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) a q)) (f p q))), Eq.{u2} P (RatFunc.liftOn'.{u1, u2} K hring hdomain P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : Sort.{u2}} (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (f : (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) -> P), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), Eq.{u2} P (f p (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (f (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.one.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) -> (forall (H : forall {p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))} {a : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))}, (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) a (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (Eq.{u2} P (f (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) a p) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (instHMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.mul'.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) a q)) (f p q))), Eq.{u2} P (RatFunc.liftOn'.{u1, u2} K hring hdomain P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)) f H) (f p q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_on'_div RatFunc.liftOn'_divₓ'. -/
@[simp]
theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1) (H) :
- (algebraMap _ (Ratfunc K) p / algebraMap _ _ q).liftOn' f @H = f p q :=
+ (algebraMap _ (RatFunc K) p / algebraMap _ _ q).liftOn' f @H = f p q :=
by
- rw [Ratfunc.liftOn', lift_on_div _ _ _ f0]
+ rw [RatFunc.liftOn', lift_on_div _ _ _ f0]
exact lift_on_condition_of_lift_on'_condition @H
-#align ratfunc.lift_on'_div Ratfunc.liftOn'_div
-
+#align ratfunc.lift_on'_div RatFunc.liftOn'_div
+
+/- warning: ratfunc.induction_on -> RatFunc.induction_on is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] {P : (RatFunc.{u1} K hring) -> Prop} (x : RatFunc.{u1} K hring), (forall (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) -> (P (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHDiv.{u1} (RatFunc.{u1} K hring) (RatFunc.hasDiv.{u1} K hring hdomain)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))) -> (P x)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] {P : (RatFunc.{u1} K hring) -> Prop} (x : RatFunc.{u1} K hring), (forall (p : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (q : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))), (Ne.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.zero.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) -> (P (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) q) (RatFunc.{u1} K hring) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) p) (RatFunc.instDivRatFunc.{u1} K hring hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (_x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => RatFunc.{u1} K hring) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) q)))) -> (P x)
+Case conversion may be inaccurate. Consider using '#align ratfunc.induction_on RatFunc.induction_onₓ'. -/
/-- Induction principle for `ratfunc K`: if `f p q : P (p / q)` for all `p q : K[X]`,
then `P` holds on all elements of `ratfunc K`.
See also `induction_on'`, which is a recursion principle defined in terms of `ratfunc.mk`.
-/
-protected theorem induction_on {P : Ratfunc K → Prop} (x : Ratfunc K)
- (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (algebraMap _ (Ratfunc K) p / algebraMap _ _ q)) : P x :=
+protected theorem induction_on {P : RatFunc K → Prop} (x : RatFunc K)
+ (f : ∀ (p q : K[X]) (hq : q ≠ 0), P (algebraMap _ (RatFunc K) p / algebraMap _ _ q)) : P x :=
x.inductionOn' fun p q hq => by simpa using f p q hq
-#align ratfunc.induction_on Ratfunc.induction_on
-
-theorem of_fraction_ring_mk' (x : K[X]) (y : K[X]⁰) :
- of_fraction_ring (IsLocalization.mk' _ x y) = IsLocalization.mk' (Ratfunc K) x y := by
+#align ratfunc.induction_on RatFunc.induction_on
+
+/- warning: ratfunc.of_fraction_ring_mk' -> RatFunc.ofFractionRing_mk' is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (y : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) x y)) (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain) x y)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))] (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (y : Subtype.{succ u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (fun (x : Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) => Membership.mem.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Submonoid.instSetLikeSubmonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))) x (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))), Eq.{succ u1} (RatFunc.{u1} K hring) (RatFunc.ofFractionRing.{u1} K hring (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) x y)) (IsLocalization.mk'.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain) x y)
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'ₓ'. -/
+theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
+ ofFractionRing (IsLocalization.mk' _ x y) = IsLocalization.mk' (RatFunc K) x y := by
rw [IsFractionRing.mk'_eq_div, IsFractionRing.mk'_eq_div, ← mk_eq_div', ← mk_eq_div]
-#align ratfunc.of_fraction_ring_mk' Ratfunc.of_fraction_ring_mk'
-
+#align ratfunc.of_fraction_ring_mk' RatFunc.ofFractionRing_mk'
+
+/- warning: ratfunc.of_fraction_ring_eq -> RatFunc.ofFractionRing_eq is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (fun (_x : AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) => (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (AlgEquiv.hasCoeToFun.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain)))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) -> (RatFunc.{u1} K hring)) (RatFunc.ofFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (fun (_x : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) => RatFunc.{u1} K hring) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toZero.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toAddZeroClass.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toZero.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AlgEquivClass.toAlgHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eqₓ'. -/
@[simp]
-theorem of_fraction_ring_eq :
- (of_fraction_ring : FractionRing K[X] → Ratfunc K) = IsLocalization.algEquiv K[X]⁰ _ _ :=
+theorem ofFractionRing_eq :
+ (ofFractionRing : FractionRing K[X] → RatFunc K) = IsLocalization.algEquiv K[X]⁰ _ _ :=
funext fun x =>
Localization.induction_on x fun x => by
simp only [IsLocalization.algEquiv_apply, IsLocalization.ringEquivOfRingEquiv_apply,
[anonymous], Localization.mk_eq_mk'_apply, IsLocalization.map_mk', of_fraction_ring_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
-#align ratfunc.of_fraction_ring_eq Ratfunc.of_fraction_ring_eq
-
+#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
+
+/- warning: ratfunc.to_fraction_ring_eq -> RatFunc.toFractionRing_eq is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} ((RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RatFunc.toFractionRing.{u1} K hring) (coeFn.{succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (fun (_x : AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) => (RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (AlgEquiv.hasCoeToFun.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} ((RatFunc.{u1} K hring) -> (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))) (RatFunc.toFractionRing.{u1} K hring) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (fun (_x : RatFunc.{u1} K hring) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} K hring) => FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toZero.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} K hring) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toZero.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddMonoid.toAddZeroClass.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} K hring) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))))) (AddCommMonoid.toAddMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} K hring) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (AlgEquivClass.toAlgHomClass.{u1, u1, u1, u1} (AlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))))))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eqₓ'. -/
@[simp]
theorem toFractionRing_eq :
- (toFractionRing : Ratfunc K → FractionRing K[X]) = IsLocalization.algEquiv K[X]⁰ _ _ :=
+ (toFractionRing : RatFunc K → FractionRing K[X]) = IsLocalization.algEquiv K[X]⁰ _ _ :=
funext fun ⟨x⟩ =>
Localization.induction_on x fun x => by
simp only [Localization.mk_eq_mk'_apply, of_fraction_ring_mk', IsLocalization.algEquiv_apply,
[anonymous], IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
-#align ratfunc.to_fraction_ring_eq Ratfunc.toFractionRing_eq
-
+#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
+
+/- warning: ratfunc.to_fraction_ring_ring_equiv_symm_eq -> RatFunc.toFractionRingRingEquiv_symm_eq is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingEquiv.{u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring)) (RingEquiv.symm.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.hasMul.{u1} K hring) (RatFunc.hasAdd.{u1} K hring) (Localization.hasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.hasAdd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.toFractionRingRingEquiv.{u1} K hring)) (AlgEquiv.toRingEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.commSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.algebra.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.isFractionRing.{u1} K hring hdomain)))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))], Eq.{succ u1} (RingEquiv.{u1, u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring)) (RingEquiv.symm.{u1, u1} (RatFunc.{u1} K hring) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.instMulRatFunc.{u1} K hring) (Localization.instMulLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.instAddRatFunc.{u1} K hring) (Localization.instAddLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (RatFunc.toFractionRingRingEquiv.{u1} K hring)) (AlgEquiv.toRingEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (CommSemiring.toSemiring.{u1} (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))))) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain)))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (IsLocalization.algEquiv.{u1, u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (FractionRing.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (Localization.instCommSemiringLocalizationToCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring)))))) (Localization.instAlgebraLocalizationToCommMonoidToSemiringInstCommSemiringLocalizationToCommMonoid.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Localization.isLocalization.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) (RatFunc.{u1} K hring) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} K hring) (Field.toSemifield.{u1} (RatFunc.{u1} K hring) (RatFunc.instFieldRatFunc.{u1} K hring hdomain))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K hring hdomain (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (RatFunc.instIsFractionRingPolynomialToSemiringToCommSemiringCommRingRatFuncInstCommRingInstAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFuncId.{u1} K hring hdomain)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eqₓ'. -/
@[simp]
theorem toFractionRingRingEquiv_symm_eq :
(toFractionRingRingEquiv K).symm = (IsLocalization.algEquiv K[X]⁰ _ _).toRingEquiv :=
by
ext x
simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, AlgEquiv.coe_ringEquiv']
-#align ratfunc.to_fraction_ring_ring_equiv_symm_eq Ratfunc.toFractionRingRingEquiv_symm_eq
+#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eq
end IsFractionRing
@@ -1051,9 +1420,10 @@ variable [hfield : Field K]
include hfield
+#print RatFunc.numDenom /-
/-- `ratfunc.num_denom` are numerator and denominator of a rational function over a field,
normalized such that the denominator is monic. -/
-def numDenom (x : Ratfunc K) : K[X] × K[X] :=
+def numDenom (x : RatFunc K) : K[X] × K[X] :=
x.liftOn'
(fun p q =>
if q = 0 then ⟨0, 1⟩
@@ -1085,8 +1455,15 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
constructor <;> congr <;>
rw [inv_div, mul_comm, mul_div_assoc, ← mul_assoc, inv_inv, _root_.mul_inv_cancel ha',
one_mul, inv_div])
-#align ratfunc.num_denom Ratfunc.numDenom
+#align ratfunc.num_denom RatFunc.numDenom
+-/
+/- warning: ratfunc.num_denom_div -> RatFunc.numDenom_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Eq.{succ u1} (Prod.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RatFunc.numDenom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (Prod.mk.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Eq.{succ u1} (Prod.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RatFunc.numDenom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (Prod.mk.{u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_denom_div RatFunc.numDenom_divₓ'. -/
@[simp]
theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
numDenom (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1097,13 +1474,15 @@ theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
intro p
rw [if_pos rfl, if_neg (one_ne_zero' K[X])]
simp
-#align ratfunc.num_denom_div Ratfunc.numDenom_div
+#align ratfunc.num_denom_div RatFunc.numDenom_div
+#print RatFunc.num /-
/-- `ratfunc.num` is the numerator of a rational function,
normalized such that the denominator is monic. -/
-def num (x : Ratfunc K) : K[X] :=
+def num (x : RatFunc K) : K[X] :=
x.num_den.1
-#align ratfunc.num Ratfunc.num
+#align ratfunc.num RatFunc.num
+-/
private theorem num_div' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1111,10 +1490,18 @@ private theorem num_div' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
by rw [Num, num_denom_div _ hq]
#align ratfunc.num_div' ratfunc.num_div'
+#print RatFunc.num_zero /-
@[simp]
-theorem num_zero : num (0 : Ratfunc K) = 0 := by convert num_div' (0 : K[X]) one_ne_zero <;> simp
-#align ratfunc.num_zero Ratfunc.num_zero
+theorem num_zero : num (0 : RatFunc K) = 0 := by convert num_div' (0 : K[X]) one_ne_zero <;> simp
+#align ratfunc.num_zero RatFunc.num_zero
+-/
+/- warning: ratfunc.num_div -> RatFunc.num_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_div RatFunc.num_divₓ'. -/
@[simp]
theorem num_div (p q : K[X]) :
num (algebraMap _ _ p / algebraMap _ _ q) =
@@ -1123,68 +1510,116 @@ theorem num_div (p q : K[X]) :
by_cases hq : q = 0
· simp [hq]
· exact num_div' p hq
-#align ratfunc.num_div Ratfunc.num_div
+#align ratfunc.num_div RatFunc.num_div
+#print RatFunc.num_one /-
@[simp]
-theorem num_one : num (1 : Ratfunc K) = 1 := by convert num_div (1 : K[X]) 1 <;> simp
-#align ratfunc.num_one Ratfunc.num_one
+theorem num_one : num (1 : RatFunc K) = 1 := by convert num_div (1 : K[X]) 1 <;> simp
+#align ratfunc.num_one RatFunc.num_one
+-/
+/- warning: ratfunc.num_algebra_map -> RatFunc.num_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) p
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) p
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_algebra_map RatFunc.num_algebraMapₓ'. -/
@[simp]
theorem num_algebraMap (p : K[X]) : num (algebraMap _ _ p) = p := by convert num_div p 1 <;> simp
-#align ratfunc.num_algebra_map Ratfunc.num_algebraMap
-
+#align ratfunc.num_algebra_map RatFunc.num_algebraMap
+
+/- warning: ratfunc.num_div_dvd -> RatFunc.num_div_dvd is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) p)
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) p)
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd RatFunc.num_div_dvdₓ'. -/
theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) ∣ p :=
by
rw [num_div _ q, C_mul_dvd]
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_left p q)
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
-#align ratfunc.num_div_dvd Ratfunc.num_div_dvd
-
+#align ratfunc.num_div_dvd RatFunc.num_div_dvd
+
+/- warning: ratfunc.num_div_dvd' -> RatFunc.num_div_dvd' is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) p)
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Dvd.dvd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (semigroupDvd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (SemigroupWithZero.toSemigroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalSemiring.toSemigroupWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (CommRing.toNonUnitalCommRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) p (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))) p)
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_dvd' RatFunc.num_div_dvd'ₓ'. -/
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@[simp]
theorem num_div_dvd' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) ∣ p := by simpa using num_div_dvd p hq
-#align ratfunc.num_div_dvd' Ratfunc.num_div_dvd'
+#align ratfunc.num_div_dvd' RatFunc.num_div_dvd'
+#print RatFunc.denom /-
/-- `ratfunc.denom` is the denominator of a rational function,
normalized such that it is monic. -/
-def denom (x : Ratfunc K) : K[X] :=
+def denom (x : RatFunc K) : K[X] :=
x.num_den.2
-#align ratfunc.denom Ratfunc.denom
+#align ratfunc.denom RatFunc.denom
+-/
+/- warning: ratfunc.denom_div -> RatFunc.denom_div is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Inv.inv.{u1} K (DivInvMonoid.toHasInv.{u1} K (DivisionRing.toDivInvMonoid.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Polynomial.leadingCoeff.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasDiv.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGcdMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.isDomain.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.normalizedGcdMonoid.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Inv.inv.{u1} K (Field.toInv.{u1} K hfield) (Polynomial.leadingCoeff.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))) (HDiv.hDiv.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHDiv.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.instDivPolynomialToSemiringToDivisionSemiringToSemifield.{u1} K hfield)) q (GCDMonoid.gcd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (NormalizedGCDMonoid.toGCDMonoid.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (IsDomain.toCancelCommMonoidWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Polynomial.instIsDomainPolynomialToSemiringSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)) (Field.isDomain.{u1} K hfield))) (Polynomial.normalizedGcdMonoid.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (CommGroupWithZero.instNormalizedGCDMonoidToCancelCommMonoidWithZero.{u1} K (Semifield.toCommGroupWithZero.{u1} K (Field.toSemifield.{u1} K hfield)) (fun (a : K) (b : K) => Classical.propDecidable (Eq.{succ u1} K a b))))) p q))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div RatFunc.denom_divₓ'. -/
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
denom (algebraMap _ _ p / algebraMap _ _ q) =
Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) :=
by rw [denom, num_denom_div _ hq]
-#align ratfunc.denom_div Ratfunc.denom_div
+#align ratfunc.denom_div RatFunc.denom_div
-theorem monic_denom (x : Ratfunc K) : (denom x).Monic :=
+#print RatFunc.monic_denom /-
+theorem monic_denom (x : RatFunc K) : (denom x).Monic :=
x.inductionOn fun p q hq => by
rw [denom_div p hq, mul_comm]
exact Polynomial.monic_mul_leadingCoeff_inv (right_div_gcd_ne_zero hq)
-#align ratfunc.monic_denom Ratfunc.monic_denom
+#align ratfunc.monic_denom RatFunc.monic_denom
+-/
-theorem denom_ne_zero (x : Ratfunc K) : denom x ≠ 0 :=
+#print RatFunc.denom_ne_zero /-
+theorem denom_ne_zero (x : RatFunc K) : denom x ≠ 0 :=
(monic_denom x).NeZero
-#align ratfunc.denom_ne_zero Ratfunc.denom_ne_zero
+#align ratfunc.denom_ne_zero RatFunc.denom_ne_zero
+-/
+#print RatFunc.denom_zero /-
@[simp]
-theorem denom_zero : denom (0 : Ratfunc K) = 1 := by
+theorem denom_zero : denom (0 : RatFunc K) = 1 := by
convert denom_div (0 : K[X]) one_ne_zero <;> simp
-#align ratfunc.denom_zero Ratfunc.denom_zero
+#align ratfunc.denom_zero RatFunc.denom_zero
+-/
+#print RatFunc.denom_one /-
@[simp]
-theorem denom_one : denom (1 : Ratfunc K) = 1 := by
+theorem denom_one : denom (1 : RatFunc K) = 1 := by
convert denom_div (1 : K[X]) one_ne_zero <;> simp
-#align ratfunc.denom_one Ratfunc.denom_one
+#align ratfunc.denom_one RatFunc.denom_one
+-/
+/- warning: ratfunc.denom_algebra_map -> RatFunc.denom_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.one.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.denom_algebra_map RatFunc.denom_algebraMapₓ'. -/
@[simp]
-theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (Ratfunc K) p) = 1 := by
+theorem denom_algebraMap (p : K[X]) : denom (algebraMap _ (RatFunc K) p) = 1 := by
convert denom_div p one_ne_zero <;> simp
-#align ratfunc.denom_algebra_map Ratfunc.denom_algebraMap
-
+#align ratfunc.denom_algebra_map RatFunc.denom_algebraMap
+
+/- warning: ratfunc.denom_div_dvd -> RatFunc.denom_div_dvd is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))), Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) q
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))), Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))) q
+Case conversion may be inaccurate. Consider using '#align ratfunc.denom_div_dvd RatFunc.denom_div_dvdₓ'. -/
@[simp]
theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q) ∣ q :=
by
@@ -1193,10 +1628,16 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
rw [denom_div _ hq, C_mul_dvd]
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_right p q)
· simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
-#align ratfunc.denom_div_dvd Ratfunc.denom_div_dvd
-
+#align ratfunc.denom_div_dvd RatFunc.denom_div_dvd
+
+/- warning: ratfunc.num_div_denom -> RatFunc.num_div_denom is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.num.{u1} K hfield x)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.denom.{u1} K hfield x))) x
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.num.{u1} K hfield x)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.denom.{u1} K hfield x)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.num.{u1} K hfield x)) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.num.{u1} K hfield x)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RatFunc.denom.{u1} K hfield x))) x
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_div_denom RatFunc.num_div_denomₓ'. -/
@[simp]
-theorem num_div_denom (x : Ratfunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x :=
+theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x :=
x.inductionOn fun p q hq =>
by
have q_div_ne_zero := right_div_gcd_ne_zero hq
@@ -1209,18 +1650,28 @@ theorem num_div_denom (x : Ratfunc K) : algebraMap _ _ (num x) / algebraMap _ _
· exact algebra_map_ne_zero hq
· refine' algebra_map_ne_zero (mt polynomial.C_eq_zero.mp _)
exact inv_ne_zero (polynomial.leading_coeff_ne_zero.mpr q_div_ne_zero)
-#align ratfunc.num_div_denom Ratfunc.num_div_denom
+#align ratfunc.num_div_denom RatFunc.num_div_denom
+#print RatFunc.num_eq_zero_iff /-
@[simp]
-theorem num_eq_zero_iff {x : Ratfunc K} : num x = 0 ↔ x = 0 :=
+theorem num_eq_zero_iff {x : RatFunc K} : num x = 0 ↔ x = 0 :=
⟨fun h => by rw [← num_div_denom x, h, RingHom.map_zero, zero_div], fun h => h.symm ▸ num_zero⟩
-#align ratfunc.num_eq_zero_iff Ratfunc.num_eq_zero_iff
+#align ratfunc.num_eq_zero_iff RatFunc.num_eq_zero_iff
+-/
-theorem num_ne_zero {x : Ratfunc K} (hx : x ≠ 0) : num x ≠ 0 :=
+#print RatFunc.num_ne_zero /-
+theorem num_ne_zero {x : RatFunc K} (hx : x ≠ 0) : num x ≠ 0 :=
mt num_eq_zero_iff.mp hx
-#align ratfunc.num_ne_zero Ratfunc.num_ne_zero
+#align ratfunc.num_ne_zero RatFunc.num_ne_zero
+-/
-theorem num_mul_eq_mul_denom_iff {x : Ratfunc K} {p q : K[X]} (hq : q ≠ 0) :
+/- warning: ratfunc.num_mul_eq_mul_denom_iff -> RatFunc.num_mul_eq_mul_denom_iff is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RatFunc.num.{u1} K hfield x) q) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.mul'.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) p (RatFunc.denom.{u1} K hfield x))) (Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))} {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RatFunc.num.{u1} K hfield x) q) (HMul.hMul.{u1, u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (instHMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.mul'.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) p (RatFunc.denom.{u1} K hfield x))) (Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_mul_eq_mul_denom_iff RatFunc.num_mul_eq_mul_denom_iffₓ'. -/
+theorem num_mul_eq_mul_denom_iff {x : RatFunc K} {p q : K[X]} (hq : q ≠ 0) :
x.num * q = p * x.den ↔ x = algebraMap _ _ p / algebraMap _ _ q :=
by
rw [← (algebra_map_injective K).eq_iff, eq_div_iff (algebra_map_ne_zero hq)]
@@ -1228,9 +1679,10 @@ theorem num_mul_eq_mul_denom_iff {x : Ratfunc K} {p q : K[X]} (hq : q ≠ 0) :
rw [RingHom.map_mul, RingHom.map_mul, div_eq_mul_inv, mul_assoc, mul_comm (Inv.inv _), ←
mul_assoc, ← div_eq_mul_inv, div_eq_iff]
exact algebra_map_ne_zero (denom_ne_zero x)
-#align ratfunc.num_mul_eq_mul_denom_iff Ratfunc.num_mul_eq_mul_denom_iff
+#align ratfunc.num_mul_eq_mul_denom_iff RatFunc.num_mul_eq_mul_denom_iff
-theorem num_denom_add (x y : Ratfunc K) :
+#print RatFunc.num_denom_add /-
+theorem num_denom_add (x y : RatFunc K) :
(x + y).num * (x.den * y.den) = (x.num * y.den + x.den * y.num) * (x + y).den :=
(num_mul_eq_mul_denom_iff (mul_ne_zero (denom_ne_zero x) (denom_ne_zero y))).mpr <|
by
@@ -1238,21 +1690,32 @@ theorem num_denom_add (x y : Ratfunc K) :
rw [div_add_div, RingHom.map_mul, RingHom.map_add, RingHom.map_mul, RingHom.map_mul]
· exact algebra_map_ne_zero (denom_ne_zero x)
· exact algebra_map_ne_zero (denom_ne_zero y)
-#align ratfunc.num_denom_add Ratfunc.num_denom_add
+#align ratfunc.num_denom_add RatFunc.num_denom_add
+-/
-theorem num_denom_neg (x : Ratfunc K) : (-x).num * x.den = -x.num * (-x).den := by
+#print RatFunc.num_denom_neg /-
+theorem num_denom_neg (x : RatFunc K) : (-x).num * x.den = -x.num * (-x).den := by
rw [num_mul_eq_mul_denom_iff (denom_ne_zero x), _root_.map_neg, neg_div, num_div_denom]
-#align ratfunc.num_denom_neg Ratfunc.num_denom_neg
+#align ratfunc.num_denom_neg RatFunc.num_denom_neg
+-/
-theorem num_denom_mul (x y : Ratfunc K) :
+#print RatFunc.num_denom_mul /-
+theorem num_denom_mul (x y : RatFunc K) :
(x * y).num * (x.den * y.den) = x.num * y.num * (x * y).den :=
(num_mul_eq_mul_denom_iff (mul_ne_zero (denom_ne_zero x) (denom_ne_zero y))).mpr <| by
conv_lhs =>
rw [← num_div_denom x, ← num_div_denom y, div_mul_div_comm, ← RingHom.map_mul, ←
RingHom.map_mul]
-#align ratfunc.num_denom_mul Ratfunc.num_denom_mul
+#align ratfunc.num_denom_mul RatFunc.num_denom_mul
+-/
-theorem num_dvd {x : Ratfunc K} {p : K[X]} (hp : p ≠ 0) :
+/- warning: ratfunc.num_dvd -> RatFunc.num_dvd is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield x) p) (Exists.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Exists.{0} (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (fun (hq : Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.num.{u1} K hfield x) p) (Exists.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => Exists.{0} (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (fun (hq : Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_dvd RatFunc.num_dvdₓ'. -/
+theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
num x ∣ p ↔ ∃ (q : K[X])(hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q :=
by
constructor
@@ -1264,9 +1727,15 @@ theorem num_dvd {x : Ratfunc K} {p : K[X]} (hp : p ≠ 0) :
· exact algebra_map_ne_zero hq
· rintro ⟨q, hq, rfl⟩
exact num_div_dvd p hq
-#align ratfunc.num_dvd Ratfunc.num_dvd
-
-theorem denom_dvd {x : Ratfunc K} {q : K[X]} (hq : q ≠ 0) :
+#align ratfunc.num_dvd RatFunc.num_dvd
+
+/- warning: ratfunc.denom_dvd -> RatFunc.denom_dvd is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {q : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 0 (Zero.zero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) -> (Iff (Dvd.Dvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalRing.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield x) q) (Exists.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasDiv.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q)))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {q : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))}, (Ne.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) q (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.zero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) -> (Iff (Dvd.dvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (semigroupDvd.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (SemigroupWithZero.toSemigroup.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalSemiring.toSemigroupWithZero.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalCommRing.toNonUnitalCommSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommRing.toNonUnitalCommRing.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hfield)))))))) (RatFunc.denom.{u1} K hfield x) q) (Exists.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) x (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) q) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) p) (RatFunc.instDivRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) q)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.denom_dvd RatFunc.denom_dvdₓ'. -/
+theorem denom_dvd {x : RatFunc K} {q : K[X]} (hq : q ≠ 0) :
denom x ∣ q ↔ ∃ p : K[X], x = algebraMap _ _ p / algebraMap _ _ q :=
by
constructor
@@ -1277,9 +1746,10 @@ theorem denom_dvd {x : Ratfunc K} {q : K[X]} (hq : q ≠ 0) :
· exact algebra_map_ne_zero hp
· rintro ⟨p, rfl⟩
exact denom_div_dvd p q
-#align ratfunc.denom_dvd Ratfunc.denom_dvd
+#align ratfunc.denom_dvd RatFunc.denom_dvd
-theorem num_mul_dvd (x y : Ratfunc K) : num (x * y) ∣ num x * num y :=
+#print RatFunc.num_mul_dvd /-
+theorem num_mul_dvd (x y : RatFunc K) : num (x * y) ∣ num x * num y :=
by
by_cases hx : x = 0
· simp [hx]
@@ -1288,16 +1758,20 @@ theorem num_mul_dvd (x y : Ratfunc K) : num (x * y) ∣ num x * num y :=
rw [num_dvd (mul_ne_zero (num_ne_zero hx) (num_ne_zero hy))]
refine' ⟨x.denom * y.denom, mul_ne_zero (denom_ne_zero x) (denom_ne_zero y), _⟩
rw [RingHom.map_mul, RingHom.map_mul, ← div_mul_div_comm, num_div_denom, num_div_denom]
-#align ratfunc.num_mul_dvd Ratfunc.num_mul_dvd
+#align ratfunc.num_mul_dvd RatFunc.num_mul_dvd
+-/
-theorem denom_mul_dvd (x y : Ratfunc K) : denom (x * y) ∣ denom x * denom y :=
+#print RatFunc.denom_mul_dvd /-
+theorem denom_mul_dvd (x y : RatFunc K) : denom (x * y) ∣ denom x * denom y :=
by
rw [denom_dvd (mul_ne_zero (denom_ne_zero x) (denom_ne_zero y))]
refine' ⟨x.num * y.num, _⟩
rw [RingHom.map_mul, RingHom.map_mul, ← div_mul_div_comm, num_div_denom, num_div_denom]
-#align ratfunc.denom_mul_dvd Ratfunc.denom_mul_dvd
+#align ratfunc.denom_mul_dvd RatFunc.denom_mul_dvd
+-/
-theorem denom_add_dvd (x y : Ratfunc K) : denom (x + y) ∣ denom x * denom y :=
+#print RatFunc.denom_add_dvd /-
+theorem denom_add_dvd (x y : RatFunc K) : denom (x + y) ∣ denom x * denom y :=
by
rw [denom_dvd (mul_ne_zero (denom_ne_zero x) (denom_ne_zero y))]
refine' ⟨x.num * y.denom + x.denom * y.num, _⟩
@@ -1305,44 +1779,77 @@ theorem denom_add_dvd (x y : Ratfunc K) : denom (x + y) ∣ denom x * denom y :=
num_div_denom, num_div_denom]
· exact algebra_map_ne_zero (denom_ne_zero x)
· exact algebra_map_ne_zero (denom_ne_zero y)
-#align ratfunc.denom_add_dvd Ratfunc.denom_add_dvd
+#align ratfunc.denom_add_dvd RatFunc.denom_add_dvd
+-/
+/- warning: ratfunc.map_denom_ne_zero -> RatFunc.map_denom_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} {F : Type.{u3}} [_inst_1 : Zero.{u2} L] [_inst_2 : ZeroHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1] (φ : F), (Function.Injective.{succ u1, succ u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => L) (ZeroHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1 _inst_2)) φ)) -> (forall (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Ne.{succ u2} L (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => L) (ZeroHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_1 _inst_2)) φ (RatFunc.denom.{u1} K hfield f)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L _inst_1))))
+but is expected to have type
+ forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u2}} {F : Type.{u1}} [_inst_1 : Zero.{u2} L] [_inst_2 : ZeroHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1] (φ : F), (Function.Injective.{succ u3, succ u2} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (ZeroHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1 _inst_2) φ)) -> (forall (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Ne.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (ZeroHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Polynomial.zero.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_1 _inst_2) φ (RatFunc.denom.{u3} K hfield f)) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) 0 (Zero.toOfNat0.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) _inst_1)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zeroₓ'. -/
theorem map_denom_ne_zero {L F : Type _} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
- (hφ : Function.Injective φ) (f : Ratfunc K) : φ f.den ≠ 0 := fun H =>
+ (hφ : Function.Injective φ) (f : RatFunc K) : φ f.den ≠ 0 := fun H =>
(denom_ne_zero f) ((map_eq_zero_iff φ hφ).mp H)
-#align ratfunc.map_denom_ne_zero Ratfunc.map_denom_ne_zero
-
+#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
+
+/- warning: ratfunc.map_apply -> RatFunc.map_apply is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {R : Type.{u2}} {F : Type.{u3}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, u3} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} (RatFunc.{u2} R _inst_1) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (fun (_x : MonoidHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> (RatFunc.{u2} R _inst_1)) (MonoidHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocRing.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toNonAssocRing.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.map.{u1, u2, u3} K R F (Field.toCommRing.{u1} K hfield) _inst_1 _inst_3 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (RatFunc.{u2} R _inst_1) (instHDiv.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.hasDiv.{u2} R _inst_1 _inst_2)) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ (RatFunc.num.{u1} K hfield f))) (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (fun (_x : RingHom.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) => (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) -> (RatFunc.{u2} R _inst_1)) (RingHom.hasCoeToFun.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (CommSemiring.toSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))))) (algebraMap.{u2, u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Ring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionRing.toRing.{u2} (RatFunc.{u2} R _inst_1) (Field.toDivisionRing.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.field.{u2} R _inst_1 _inst_2)))) (RatFunc.algebra.{u2, u2} R _inst_1 _inst_2 (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (coeFn.{succ u3, max (succ u1) (succ u2)} F (fun (_x : F) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1)))) (FunLike.hasCoeToFun.{succ u3, succ u1, succ u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (fun (_x : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) => Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulHomClass.toFunLike.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulOneClass.toHasMul.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (MulOneClass.toHasMul.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u3, u1, u2} F (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_1))) (Polynomial.ring.{u2} R (CommRing.toRing.{u2} R _inst_1)))))) _inst_3))) φ (RatFunc.denom.{u1} K hfield f))))
+but is expected to have type
+ forall {K : Type.{u3}} [hfield : Field.{u3} K] {R : Type.{u2}} {F : Type.{u1}} [_inst_1 : CommRing.{u2} R] [_inst_2 : IsDomain.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))] [_inst_3 : MonoidHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))] (φ : F) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (Submonoid.comap.{u3, u2, u1} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) F _inst_3 φ (nonZeroDivisors.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) f) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (fun (_x : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulOneClass.toMul.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{max u3 u2, u3, u2} (MonoidHom.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1)))))) (MonoidHom.monoidHomClass.{u3, u2} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.{u2} R _inst_1) (MulZeroOneClass.toMulOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommRing.toCommSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instCommRing.{u3} K (Field.toCommRing.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instCommRing.{u2} R _inst_1))))))))) (RatFunc.map.{u3, u2, u1} K R F (Field.toCommRing.{u3} K hfield) _inst_1 _inst_3 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.denom.{u3} K hfield f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => RatFunc.{u2} R _inst_1) f) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (a : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) a) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) (RatFunc.instDivRatFunc.{u2} R _inst_1 _inst_2)) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.num.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.num.{u3} K hfield f))) (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (fun (_x : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) => RatFunc.{u2} R _inst_1) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))) (RingHom.instRingHomClassRingHom.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} R _inst_1) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2))))))))) (algebraMap.{u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (RatFunc.{u2} R _inst_1) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} R _inst_1) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} R _inst_1) (Field.toSemifield.{u2} (RatFunc.{u2} R _inst_1) (RatFunc.instFieldRatFunc.{u2} R _inst_1 _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u2, u2} R _inst_1 _inst_2 ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)) (Algebra.id.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (RatFunc.denom.{u3} K hfield f)) (Polynomial.commSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))) (FunLike.coe.{succ u1, succ u3, succ u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulOneClass.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (MulOneClass.toMul.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))))))) (MonoidHomClass.toMulHomClass.{u1, u3, u2} F (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1))) (Polynomial.semiring.{u2} R (CommSemiring.toSemiring.{u2} R (CommRing.toCommSemiring.{u2} R _inst_1)))))) _inst_3)) φ (RatFunc.denom.{u3} K hfield f))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.map_apply RatFunc.map_applyₓ'. -/
theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
- (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : Ratfunc K) :
+ (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
map φ hφ f = algebraMap _ _ (φ f.num) / algebraMap _ _ (φ f.den) :=
by
rw [← num_div_denom f, map_apply_div_ne_zero, num_div_denom f]
exact denom_ne_zero _
-#align ratfunc.map_apply Ratfunc.map_apply
-
+#align ratfunc.map_apply RatFunc.map_apply
+
+/- warning: ratfunc.lift_monoid_with_zero_hom_apply -> RatFunc.liftMonoidWithZeroHom_apply is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : CommGroupWithZero.{u2} L] (φ : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u2 u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u1, u2} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) φ (nonZeroDivisors.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (RatFunc.liftMonoidWithZeroHom.{u2, u1} L K _inst_1 (Field.toCommRing.{u1} K hfield) φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (GroupWithZero.toDivInvMonoid.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) (fun (_x : MonoidWithZeroHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (MonoidWithZeroHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u2} L (GroupWithZero.toMonoidWithZero.{u2} L (CommGroupWithZero.toGroupWithZero.{u2} L _inst_1)))) φ (RatFunc.denom.{u1} K hfield f)))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : CommGroupWithZero.{u1} L] (φ : MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) φ (nonZeroDivisors.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (f : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) f) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (fun (_x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (MulOneClass.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (MulZeroOneClass.toMulOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toMulZeroOneClass.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) (RatFunc.liftMonoidWithZeroHom.{u1, u2} L K _inst_1 (Field.toCommRing.{u2} K hfield) φ hφ) f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.denom.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (CommGroupWithZero.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ (RatFunc.num.{u2} K hfield f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulOneClass.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (MulOneClass.toMul.{u1} L (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (MonoidWithZeroHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (MonoidWithZeroHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1)))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))) (MonoidWithZeroHom.monoidWithZeroHomClass.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (MonoidWithZero.toMulZeroOneClass.{u1} L (GroupWithZero.toMonoidWithZero.{u1} L (CommGroupWithZero.toGroupWithZero.{u1} L _inst_1))))))) φ (RatFunc.denom.{u2} K hfield f)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_applyₓ'. -/
theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X] →*₀ L)
- (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : Ratfunc K) : liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.den :=
+ (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) : liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.den :=
by rw [← num_div_denom f, lift_monoid_with_zero_hom_apply_div, num_div_denom]
-#align ratfunc.lift_monoid_with_zero_hom_apply Ratfunc.liftMonoidWithZeroHom_apply
-
+#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_apply
+
+/- warning: ratfunc.lift_ring_hom_apply -> RatFunc.liftRingHom_apply is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (φ : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (RingHom.ringHomClass.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) (RingHom.hasCoeToFun.{u1, u2} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (CommRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instCommRing.{u1} K (Field.toCommRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.liftRingHom.{u2, u1} L K _inst_1 (Field.toCommRing.{u1} K hfield) φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) (RingHom.hasCoeToFun.{u1, u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (NonAssocRing.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toNonAssocRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.ring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) φ (RatFunc.denom.{u1} K hfield f)))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (φ : RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (hφ : LE.le.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Preorder.toLE.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))))))))) (nonZeroDivisors.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toMonoidWithZero.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (Submonoid.comap.{u2, u1, max u2 u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u1} L (MonoidWithZero.toMulZeroOneClass.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toMonoidHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) φ (nonZeroDivisors.{u1} L (Semiring.toMonoidWithZero.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) (f : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) f) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (fun (_x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) L (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (CommRing.toCommSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instCommRing.{u2} K (Field.toCommRing.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) (RatFunc.liftRingHom.{u1, u2} L K _inst_1 (Field.toCommRing.{u2} K hfield) φ hφ) f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.denom.{u2} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) (RatFunc.num.{u2} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ (RatFunc.num.{u2} K hfield f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (fun (_x : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonUnitalNonAssocSemiring.toMul.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) L (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Polynomial.semiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) φ (RatFunc.denom.{u2} K hfield f)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_applyₓ'. -/
theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
- (f : Ratfunc K) : liftRingHom φ hφ f = φ f.num / φ f.den :=
+ (f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.den :=
liftMonoidWithZeroHom_apply _ _ _
-#align ratfunc.lift_ring_hom_apply Ratfunc.liftRingHom_apply
-
+#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
+
+/- warning: ratfunc.lift_alg_hom_apply -> RatFunc.liftAlgHom_apply is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} {S : Type.{u3}} [_inst_1 : Field.{u2} L] [_inst_2 : CommSemiring.{u3} S] [_inst_3 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))] [_inst_4 : Algebra.{u3, u2} S L _inst_2 (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))] (φ : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (hφ : LE.le.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (SetLike.partialOrder.{u1, u1} (Submonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Submonoid.setLike.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))))))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Submonoid.comap.{u1, u2, max u1 u2} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))) (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (RingHomClass.toMonoidHomClass.{max u1 u2, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (Semiring.toNonAssocSemiring.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u1 u2, u3, u1, u2} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.algHomClass.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))) (f : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)), Eq.{succ u2} L (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) => (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) -> L) ([anonymous].{u3, u1, u2} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) L _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3) _inst_4) (RatFunc.liftAlgHom.{u1, u2, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) L S _inst_1 _inst_2 _inst_3 _inst_4 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} L L L (instHDiv.{u2} L (DivInvMonoid.toHasDiv.{u2} L (DivisionRing.toDivInvMonoid.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) φ (RatFunc.num.{u1} K hfield f)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) (fun (_x : AlgHom.{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) -> L) ([anonymous].{u3, u1, u2} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) L _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) _inst_3 _inst_4) φ (RatFunc.denom.{u1} K hfield f)))
+but is expected to have type
+ forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u2}} {S : Type.{u1}} [_inst_1 : Field.{u2} L] [_inst_2 : CommSemiring.{u1} S] [_inst_3 : Algebra.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))] [_inst_4 : Algebra.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))] (φ : AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (hφ : LE.le.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Preorder.toLE.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (PartialOrder.toPreorder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Submonoid.instCompleteLatticeSubmonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))))))) (nonZeroDivisors.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toMonoidWithZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (Submonoid.comap.{u3, u2, max u3 u2} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MulZeroOneClass.toMulOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toMulZeroOneClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (MulZeroOneClass.toMulOneClass.{u2} L (MonoidWithZero.toMulZeroOneClass.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (RingHomClass.toMonoidHomClass.{max u3 u2, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))) (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))) (AlgHomClass.toRingHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))) φ (nonZeroDivisors.{u2} L (Semiring.toMonoidWithZero.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (f : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => L) f) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (fun (_x : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (SMulZeroClass.toSMul.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddMonoid.toZero.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddMonoid.toAddZeroClass.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (Algebra.toModule.{u1, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4 (AlgHom.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) L _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3) _inst_4))))) (RatFunc.liftAlgHom.{u3, u2, u1} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) L S _inst_1 _inst_2 _inst_3 _inst_4 φ hφ) f) (HDiv.hDiv.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.denom.{u3} K hfield f)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) (instHDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) (Field.toDiv.{u2} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) (RatFunc.num.{u3} K hfield f)) _inst_1)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))))) φ (RatFunc.num.{u3} K hfield f)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (fun (_x : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) => L) _x) (SMulHomClass.toFunLike.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (SMulZeroClass.toSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toZero.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribSMul.toSMulZeroClass.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddMonoid.toAddZeroClass.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (DistribMulAction.toDistribSMul.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3))))) (SMulZeroClass.toSMul.{u1, u2} S L (AddMonoid.toZero.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u2} S L (AddMonoid.toAddZeroClass.{u2} L (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u2} S L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4))))) (DistribMulActionHomClass.toSMulHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (AddCommMonoid.toAddMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))))) (AddCommMonoid.toAddMonoid.{u2} L (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u3 u2, u1, u3, u2} (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S (CommSemiring.toSemiring.{u1} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))))) (Module.toDistribMulAction.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (Algebra.toModule.{u1, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3)) (Module.toDistribMulAction.{u1, u2} S L (CommSemiring.toSemiring.{u1} S _inst_2) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} L (Semiring.toNonAssocSemiring.{u2} L (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1)))))) (Algebra.toModule.{u1, u2} S L _inst_2 (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_4)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u3, u2, max u3 u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4 (AlgHom.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4) (AlgHom.algHomClass.{u1, u3, u2} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) L _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (DivisionSemiring.toSemiring.{u2} L (Semifield.toDivisionSemiring.{u2} L (Field.toSemifield.{u2} L _inst_1))) _inst_3 _inst_4))))) φ (RatFunc.denom.{u3} K hfield f)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_applyₓ'. -/
theorem liftAlgHom_apply {L S : Type _} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
- (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : Ratfunc K) :
+ (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftAlgHom φ hφ f = φ f.num / φ f.den :=
liftMonoidWithZeroHom_apply _ _ _
-#align ratfunc.lift_alg_hom_apply Ratfunc.liftAlgHom_apply
+#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_apply
-theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : Ratfunc K} (hxy : x + y ≠ 0) :
+#print RatFunc.num_mul_denom_add_denom_mul_num_ne_zero /-
+theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y ≠ 0) :
x.num * y.den + x.den * y.num ≠ 0 := by
intro h_zero
have h := num_denom_add x y
rw [h_zero, MulZeroClass.zero_mul] at h
exact (mul_ne_zero (num_ne_zero hxy) (mul_ne_zero x.denom_ne_zero y.denom_ne_zero)) h
-#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero Ratfunc.num_mul_denom_add_denom_mul_num_ne_zero
+#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero RatFunc.num_mul_denom_add_denom_mul_num_ne_zero
+-/
end NumDenom
@@ -1353,39 +1860,81 @@ section Eval
include hdomain
+/- warning: ratfunc.C -> RatFunc.C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K], RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.C RatFunc.Cₓ'. -/
/-- `ratfunc.C a` is the constant rational function `a`. -/
-def c : K →+* Ratfunc K :=
+def C : K →+* RatFunc K :=
algebraMap _ _
-#align ratfunc.C Ratfunc.c
-
+#align ratfunc.C RatFunc.C
+
+/- warning: ratfunc.algebra_map_eq_C -> RatFunc.algebraMap_eq_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} K (RatFunc.{u1} K hring) (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain K (CommRing.toCommSemiring.{u1} K hring) (Polynomial.algebraOfAlgebra.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (RatFunc.C.{u1} K hring hdomain)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (algebraMap.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RatFunc.C.{u1} K hring)
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_Cₓ'. -/
@[simp]
-theorem algebraMap_eq_c : algebraMap K (Ratfunc K) = c :=
+theorem algebraMap_eq_C : algebraMap K (RatFunc K) = C :=
rfl
-#align ratfunc.algebra_map_eq_C Ratfunc.algebraMap_eq_c
-
+#align ratfunc.algebra_map_eq_C RatFunc.algebraMap_eq_C
+
+/- warning: ratfunc.algebra_map_C -> RatFunc.algebraMap_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (a : K), Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) a)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => K -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RatFunc.C.{u1} K hring hdomain) a)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K] (hdomain : K), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (fun (a : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) hdomain)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (RatFunc.C.{u1} K hring) hdomain)
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_C RatFunc.algebraMap_Cₓ'. -/
@[simp]
-theorem algebraMap_c (a : K) : algebraMap K[X] (Ratfunc K) (Polynomial.C a) = c a :=
+theorem algebraMap_C (a : K) : algebraMap K[X] (RatFunc K) (Polynomial.C a) = C a :=
rfl
-#align ratfunc.algebra_map_C Ratfunc.algebraMap_c
-
+#align ratfunc.algebra_map_C RatFunc.algebraMap_C
+
+/- warning: ratfunc.algebra_map_comp_C -> RatFunc.algebraMap_comp_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RingHom.comp.{u1, u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RatFunc.C.{u1} K hring hdomain)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHom.comp.{u1, u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RatFunc.C.{u1} K hring)
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_Cₓ'. -/
@[simp]
-theorem algebraMap_comp_c : (algebraMap K[X] (Ratfunc K)).comp Polynomial.C = c :=
+theorem algebraMap_comp_C : (algebraMap K[X] (RatFunc K)).comp Polynomial.C = C :=
rfl
-#align ratfunc.algebra_map_comp_C Ratfunc.algebraMap_comp_c
-
-theorem smul_eq_c_mul (r : K) (x : Ratfunc K) : r • x = c r * x := by
+#align ratfunc.algebra_map_comp_C RatFunc.algebraMap_comp_C
+
+/- warning: ratfunc.smul_eq_C_mul -> RatFunc.smul_eq_C_mul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))] (r : K) (x : RatFunc.{u1} K hring), Eq.{succ u1} (RatFunc.{u1} K hring) (SMul.smul.{u1, u1} K (RatFunc.{u1} K hring) (RatFunc.hasSmul.{u1, u1} K hring K (Localization.hasSmul.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring)) (nonZeroDivisors.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Ring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommRing.toRing.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commRing.{u1} K hring))))) K (SMulZeroClass.toHasSmul.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.zero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.smulZeroClass.{u1, u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) K (DistribSMul.toSmulZeroClass.{u1, u1} K K (AddMonoid.toAddZeroClass.{u1} K (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))))))) (Polynomial.isScalarTower_right.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddGroupWithOne.toAddMonoidWithOne.{u1} K (AddCommGroupWithOne.toAddGroupWithOne.{u1} K (Ring.toAddCommGroupWithOne.{u1} K (CommRing.toRing.{u1} K hring))))) (Module.toDistribMulAction.{u1, u1} K K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (AddCommGroup.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toAddCommGroup.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))))) (Semiring.toModule.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))))) (IsScalarTower.right.{u1, u1} K K (CommRing.toCommSemiring.{u1} K hring) (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)) (Algebra.id.{u1} K (CommRing.toCommSemiring.{u1} K hring)))))) r x) (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (RatFunc.{u1} K hring) (instHMul.{u1} (RatFunc.{u1} K hring) (RatFunc.hasMul.{u1} K hring)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => K -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K hring) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K hring))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (RatFunc.C.{u1} K hring hdomain) r) x)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K] (hdomain : K) (r : RatFunc.{u1} K (Field.toCommRing.{u1} K hring)), Eq.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (HSMul.hSMul.{u1, u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (instHSMul.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instSMulRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) K (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hring))) (nonZeroDivisors.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.commRing.{u1} K (Field.toCommRing.{u1} K hring)))))) K (Algebra.toSMul.{u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Polynomial.isScalarTower_right.{u1, u1} K K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))) (DistribMulAction.toDistribSMul.{u1, u1} K K (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (AddMonoidWithOne.toAddMonoid.{u1} K (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} K (NonAssocSemiring.toAddCommMonoidWithOne.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (Field.toCommRing.{u1} K hring))))))) (Module.toDistribMulAction.{u1, u1} K K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} K (NonAssocRing.toNonUnitalNonAssocRing.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hring)))))) (Semiring.toModule.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (IsScalarTower.right.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))))) hdomain r) (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) hdomain) (RatFunc.instMulRatFunc.{u1} K (Field.toCommRing.{u1} K hring))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (fun (a : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (RatFunc.C.{u1} K hring) hdomain) r)
+Case conversion may be inaccurate. Consider using '#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mulₓ'. -/
+theorem smul_eq_C_mul (r : K) (x : RatFunc K) : r • x = C r * x := by
rw [Algebra.smul_def, algebra_map_eq_C]
-#align ratfunc.smul_eq_C_mul Ratfunc.smul_eq_c_mul
-
+#align ratfunc.smul_eq_C_mul RatFunc.smul_eq_C_mul
+
+/- warning: ratfunc.X -> RatFunc.X is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], RatFunc.{u1} K hring
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K], RatFunc.{u1} K (Field.toCommRing.{u1} K hring)
+Case conversion may be inaccurate. Consider using '#align ratfunc.X RatFunc.Xₓ'. -/
/-- `ratfunc.X` is the polynomial variable (aka indeterminate). -/
-def x : Ratfunc K :=
- algebraMap K[X] (Ratfunc K) Polynomial.X
-#align ratfunc.X Ratfunc.x
-
+def X : RatFunc K :=
+ algebraMap K[X] (RatFunc K) Polynomial.X
+#align ratfunc.X RatFunc.X
+
+/- warning: ratfunc.algebra_map_X -> RatFunc.algebraMap_X is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hring : CommRing.{u1} K] [hdomain : IsDomain.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))], Eq.{succ u1} (RatFunc.{u1} K hring) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) -> (RatFunc.{u1} K hring)) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K hring) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (RatFunc.{u1} K hring) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Ring.toSemiring.{u1} (RatFunc.{u1} K hring) (DivisionRing.toRing.{u1} (RatFunc.{u1} K hring) (Field.toDivisionRing.{u1} (RatFunc.{u1} K hring) (RatFunc.field.{u1} K hring hdomain)))) (RatFunc.algebra.{u1, u1} K hring hdomain (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring)) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring))) (Polynomial.commSemiring.{u1} K (CommRing.toCommSemiring.{u1} K hring))))) (Polynomial.X.{u1} K (Ring.toSemiring.{u1} K (CommRing.toRing.{u1} K hring)))) (RatFunc.X.{u1} K hring hdomain)
+but is expected to have type
+ forall {K : Type.{u1}} [hring : Field.{u1} K], Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.X.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (fun (a : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hring)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K hring) (Field.isDomain.{u1} K hring) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K hring)))))) (Polynomial.X.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hring))))) (RatFunc.X.{u1} K hring)
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_X RatFunc.algebraMap_Xₓ'. -/
@[simp]
-theorem algebraMap_x : algebraMap K[X] (Ratfunc K) Polynomial.X = x :=
+theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
rfl
-#align ratfunc.algebra_map_X Ratfunc.algebraMap_x
+#align ratfunc.algebra_map_X RatFunc.algebraMap_X
omit hring hdomain
@@ -1393,77 +1942,145 @@ variable [hfield : Field K]
include hfield
+/- warning: ratfunc.num_C -> RatFunc.num_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => K -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u1, u1} K (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (Polynomial.C.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) c)
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.num.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (RatFunc.C.{u1} K hfield) c)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))))) (Polynomial.C.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) c)
+Case conversion may be inaccurate. Consider using '#align ratfunc.num_C RatFunc.num_Cₓ'. -/
@[simp]
-theorem num_c (c : K) : num (c c) = Polynomial.C c :=
+theorem num_C (c : K) : num (C c) = Polynomial.C c :=
num_algebraMap _
-#align ratfunc.num_C Ratfunc.num_c
-
+#align ratfunc.num_C RatFunc.num_C
+
+/- warning: ratfunc.denom_C -> RatFunc.denom_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (OfNat.mk.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) 1 (One.one.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.hasOne.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))))
+but is expected to have type
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] (c : K), Eq.{succ u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (RatFunc.denom.{u1} K hfield (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)))))))))) (RatFunc.C.{u1} K hfield) c)) (OfNat.ofNat.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) 1 (One.toOfNat1.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield)))) (Polynomial.one.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K hfield))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.denom_C RatFunc.denom_Cₓ'. -/
@[simp]
-theorem denom_c (c : K) : denom (c c) = 1 :=
+theorem denom_C (c : K) : denom (C c) = 1 :=
denom_algebraMap _
-#align ratfunc.denom_C Ratfunc.denom_c
+#align ratfunc.denom_C RatFunc.denom_C
+#print RatFunc.num_X /-
@[simp]
-theorem num_x : num (x : Ratfunc K) = Polynomial.X :=
+theorem num_X : num (X : RatFunc K) = Polynomial.X :=
num_algebraMap _
-#align ratfunc.num_X Ratfunc.num_x
+#align ratfunc.num_X RatFunc.num_X
+-/
+#print RatFunc.denom_X /-
@[simp]
-theorem denom_x : denom (x : Ratfunc K) = 1 :=
+theorem denom_X : denom (X : RatFunc K) = 1 :=
denom_algebraMap _
-#align ratfunc.denom_X Ratfunc.denom_x
+#align ratfunc.denom_X RatFunc.denom_X
+-/
-theorem x_ne_zero : (Ratfunc.x : Ratfunc K) ≠ 0 :=
- Ratfunc.algebraMap_ne_zero Polynomial.X_ne_zero
-#align ratfunc.X_ne_zero Ratfunc.x_ne_zero
+#print RatFunc.X_ne_zero /-
+theorem X_ne_zero : (RatFunc.X : RatFunc K) ≠ 0 :=
+ RatFunc.algebraMap_ne_zero Polynomial.X_ne_zero
+#align ratfunc.X_ne_zero RatFunc.X_ne_zero
+-/
variable {L : Type _} [Field L]
+#print RatFunc.eval /-
/-- Evaluate a rational function `p` given a ring hom `f` from the scalar field
to the target and a value `x` for the variable in the target.
Fractions are reduced by clearing common denominators before evaluating:
`eval id 1 ((X^2 - 1) / (X - 1)) = eval id 1 (X + 1) = 2`, not `0 / 0 = 0`.
-/
-def eval (f : K →+* L) (a : L) (p : Ratfunc K) : L :=
+def eval (f : K →+* L) (a : L) (p : RatFunc K) : L :=
(num p).eval₂ f a / (denom p).eval₂ f a
-#align ratfunc.eval Ratfunc.eval
+#align ratfunc.eval RatFunc.eval
+-/
variable {f : K →+* L} {a : L}
-theorem eval_eq_zero_of_eval₂_denom_eq_zero {x : Ratfunc K}
+/- warning: ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero -> RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] {f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))} {a : L} {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Eq.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] {f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))} {a : L} {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Eq.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero RatFunc.eval_eq_zero_of_eval₂_denom_eq_zeroₓ'. -/
+theorem eval_eq_zero_of_eval₂_denom_eq_zero {x : RatFunc K}
(h : Polynomial.eval₂ f a (denom x) = 0) : eval f a x = 0 := by rw [eval, h, div_zero]
-#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero Ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero
-
-theorem eval₂_denom_ne_zero {x : Ratfunc K} (h : eval f a x ≠ 0) :
+#align ratfunc.eval_eq_zero_of_eval₂_denom_eq_zero RatFunc.eval_eq_zero_of_eval₂_denom_eq_zero
+
+/- warning: ratfunc.eval₂_denom_ne_zero -> RatFunc.eval₂_denom_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] {f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))} {a : L} {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] {f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))} {a : L} {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval₂_denom_ne_zero RatFunc.eval₂_denom_ne_zeroₓ'. -/
+theorem eval₂_denom_ne_zero {x : RatFunc K} (h : eval f a x ≠ 0) :
Polynomial.eval₂ f a (denom x) ≠ 0 :=
mt eval_eq_zero_of_eval₂_denom_eq_zero h
-#align ratfunc.eval₂_denom_ne_zero Ratfunc.eval₂_denom_ne_zero
+#align ratfunc.eval₂_denom_ne_zero RatFunc.eval₂_denom_ne_zero
variable (f a)
+/- warning: ratfunc.eval_C -> RatFunc.eval_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {c : K}, Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield)) c)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (fun (_x : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) => K -> L) (RingHom.hasCoeToFun.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) f c)
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {c : K}, Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (FunLike.coe.{succ u2, succ u2, succ u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) _x) (MulHomClass.toFunLike.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{u2, u2, u2} (RingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield))))))) K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))) (RingHom.instRingHomClassRingHom.{u2, u2} K (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (DivisionSemiring.toSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Semifield.toDivisionSemiring.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (Field.toSemifield.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instFieldRatFunc.{u2} K (Field.toCommRing.{u2} K hfield) (Field.isDomain.{u2} K hfield)))))))))) (RatFunc.C.{u2} K hfield) c)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => L) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (NonUnitalNonAssocSemiring.toMul.{u2} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))))) (NonUnitalNonAssocSemiring.toMul.{u1} L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} K (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} L (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))) (RingHom.instRingHomClassRingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1)))))))) f c)
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_C RatFunc.eval_Cₓ'. -/
@[simp]
-theorem eval_c {c : K} : eval f a (c c) = f c := by simp [eval]
-#align ratfunc.eval_C Ratfunc.eval_c
-
+theorem eval_C {c : K} : eval f a (C c) = f c := by simp [eval]
+#align ratfunc.eval_C RatFunc.eval_C
+
+/- warning: ratfunc.eval_X -> RatFunc.eval_X is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (RatFunc.X.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))) a
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (RatFunc.X.{u2} K hfield)) a
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_X RatFunc.eval_Xₓ'. -/
@[simp]
-theorem eval_x : eval f a x = a := by simp [eval]
-#align ratfunc.eval_X Ratfunc.eval_x
-
+theorem eval_X : eval f a X = a := by simp [eval]
+#align ratfunc.eval_X RatFunc.eval_X
+
+/- warning: ratfunc.eval_zero -> RatFunc.eval_zero is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K hfield)))))) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (OfNat.ofNat.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) 0 (Zero.toOfNat0.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instZeroRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))))) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_zero RatFunc.eval_zeroₓ'. -/
@[simp]
theorem eval_zero : eval f a 0 = 0 := by simp [eval]
-#align ratfunc.eval_zero Ratfunc.eval_zero
-
+#align ratfunc.eval_zero RatFunc.eval_zero
+
+/- warning: ratfunc.eval_one -> RatFunc.eval_one is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 1 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) 1 (One.one.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasOne.{u1} K (Field.toCommRing.{u1} K hfield)))))) (OfNat.ofNat.{u2} L 1 (OfNat.mk.{u2} L 1 (One.one.{u2} L (AddMonoidWithOne.toOne.{u2} L (AddGroupWithOne.toAddMonoidWithOne.{u2} L (AddCommGroupWithOne.toAddGroupWithOne.{u2} L (Ring.toAddCommGroupWithOne.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1)))))))))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L), Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (OfNat.ofNat.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) 1 (One.toOfNat1.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instOneRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))))) (OfNat.ofNat.{u1} L 1 (One.toOfNat1.{u1} L (Semiring.toOne.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_one RatFunc.eval_oneₓ'. -/
@[simp]
theorem eval_one : eval f a 1 = 1 := by simp [eval]
-#align ratfunc.eval_one Ratfunc.eval_one
-
+#align ratfunc.eval_one RatFunc.eval_one
+
+/- warning: ratfunc.eval_algebra_map -> RatFunc.eval_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {S : Type.{u3}} [_inst_2 : CommSemiring.{u3} S] [_inst_3 : Algebra.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))] (p : S), Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (fun (_x : RingHom.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) => S -> (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield))) (RingHom.hasCoeToFun.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))))) (algebraMap.{u3, u1} S (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) _inst_2 (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield))))) (RatFunc.algebra.{u1, u3} K (Field.toCommRing.{u1} K hfield) (Field.isDomain.{u1} K hfield) S _inst_2 _inst_3)) p)) (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (coeFn.{max (succ u3) (succ u1), max (succ u3) (succ u1)} (RingHom.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (fun (_x : RingHom.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) => S -> (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))))) (RingHom.hasCoeToFun.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Semiring.toNonAssocSemiring.{u3} S (CommSemiring.toSemiring.{u3} S _inst_2)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))))) (algebraMap.{u3, u1} S (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_2 (Polynomial.semiring.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) _inst_3) p))
+but is expected to have type
+ forall {K : Type.{u3}} [hfield : Field.{u3} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u3, u1} K L (Semiring.toNonAssocSemiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {S : Type.{u2}} [_inst_2 : CommSemiring.{u2} S] [_inst_3 : Algebra.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))] (p : S), Eq.{succ u1} L (RatFunc.eval.{u3, u1} K hfield L _inst_1 f a (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))))) S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))) (RingHom.instRingHomClassRingHom.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield)))))))))) (algebraMap.{u2, u3} S (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) _inst_2 (DivisionSemiring.toSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Semifield.toDivisionSemiring.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (Field.toSemifield.{u3} (RatFunc.{u3} K (Field.toCommRing.{u3} K hfield)) (RatFunc.instFieldRatFunc.{u3} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u3, u2} K (Field.toCommRing.{u3} K hfield) (Field.isDomain.{u3} K hfield) S _inst_2 _inst_3)) p)) (Polynomial.eval₂.{u3, u1} K L (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (FunLike.coe.{max (succ u3) (succ u2), succ u2, succ u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _x) (MulHomClass.toFunLike.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonUnitalNonAssocSemiring.toMul.{u2} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)))) (NonUnitalNonAssocSemiring.toMul.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} S (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) (RingHomClass.toNonUnitalRingHomClass.{max u3 u2, u2, u3} (RingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))))) S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))) (RingHom.instRingHomClassRingHom.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Semiring.toNonAssocSemiring.{u2} S (CommSemiring.toSemiring.{u2} S _inst_2)) (Semiring.toNonAssocSemiring.{u3} (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield))))))))) (algebraMap.{u2, u3} S (Polynomial.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_2 (Polynomial.semiring.{u3} K (DivisionSemiring.toSemiring.{u3} K (Semifield.toDivisionSemiring.{u3} K (Field.toSemifield.{u3} K hfield)))) _inst_3) p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_algebra_map RatFunc.eval_algebraMapₓ'. -/
@[simp]
theorem eval_algebraMap {S : Type _} [CommSemiring S] [Algebra S K[X]] (p : S) :
eval f a (algebraMap _ _ p) = (algebraMap _ K[X] p).eval₂ f a := by
- simp [eval, IsScalarTower.algebraMap_apply S K[X] (Ratfunc K)]
-#align ratfunc.eval_algebra_map Ratfunc.eval_algebraMap
-
+ simp [eval, IsScalarTower.algebraMap_apply S K[X] (RatFunc K)]
+#align ratfunc.eval_algebra_map RatFunc.eval_algebraMap
+
+/- warning: ratfunc.eval_add -> RatFunc.eval_add is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield y)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K hfield))) x y)) (HAdd.hAdd.{u2, u2, u2} L L L (instHAdd.{u2} L (Distrib.toHasAdd.{u2} L (Ring.toDistrib.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a y)))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)} {y : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield y)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (HAdd.hAdd.{u2, u2, u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (instHAdd.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instAddRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))) x y)) (HAdd.hAdd.{u1, u1, u1} L L L (instHAdd.{u1} L (Distrib.toAdd.{u1} L (NonUnitalNonAssocSemiring.toDistrib.{u1} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} L (NonAssocRing.toNonUnitalNonAssocRing.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)))))))) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a y)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_add RatFunc.eval_addₓ'. -/
/-- `eval` is an additive homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 1 (X / (X-1)) + eval _ 1 (-1 / (X-1)) = 0`
@@ -1471,7 +2088,7 @@ Counterexample: `eval _ 1 (X / (X-1)) + eval _ 1 (-1 / (X-1)) = 0`
See also `ratfunc.eval₂_denom_ne_zero` to make the hypotheses simpler but less general.
-/
-theorem eval_add {x y : Ratfunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
+theorem eval_add {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
(hy : Polynomial.eval₂ f a (denom y) ≠ 0) : eval f a (x + y) = eval f a x + eval f a y :=
by
unfold eval
@@ -1484,15 +2101,21 @@ theorem eval_add {x y : Ratfunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
simp only [← Polynomial.eval₂_mul, ← Polynomial.eval₂_add]
congr 1
apply num_denom_add
-#align ratfunc.eval_add Ratfunc.eval_add
-
+#align ratfunc.eval_add RatFunc.eval_add
+
+/- warning: ratfunc.eval_mul -> RatFunc.eval_mul is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [hfield : Field.{u1} K] {L : Type.{u2}} [_inst_1 : Field.{u2} L] (f : RingHom.{u1, u2} K L (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield)))) (NonAssocRing.toNonAssocSemiring.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (a : L) {x : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)}, (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield x)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Ne.{succ u2} L (Polynomial.eval₂.{u1, u2} K L (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K hfield))) (Ring.toSemiring.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))) f a (RatFunc.denom.{u1} K hfield y)) (OfNat.ofNat.{u2} L 0 (OfNat.mk.{u2} L 0 (Zero.zero.{u2} L (MulZeroClass.toHasZero.{u2} L (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} L (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} L (NonAssocRing.toNonUnitalNonAssocRing.{u2} L (Ring.toNonAssocRing.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))))))))) -> (Eq.{succ u2} L (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (instHMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K hfield)) (RatFunc.hasMul.{u1} K (Field.toCommRing.{u1} K hfield))) x y)) (HMul.hMul.{u2, u2, u2} L L L (instHMul.{u2} L (Distrib.toHasMul.{u2} L (Ring.toDistrib.{u2} L (DivisionRing.toRing.{u2} L (Field.toDivisionRing.{u2} L _inst_1))))) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a x) (RatFunc.eval.{u1, u2} K hfield L _inst_1 f a y)))
+but is expected to have type
+ forall {K : Type.{u2}} [hfield : Field.{u2} K] {L : Type.{u1}} [_inst_1 : Field.{u1} L] (f : RingHom.{u2, u1} K L (Semiring.toNonAssocSemiring.{u2} K (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield)))) (Semiring.toNonAssocSemiring.{u1} L (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))))) (a : L) {x : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)} {y : RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)}, (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield x)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Ne.{succ u1} L (Polynomial.eval₂.{u2, u1} K L (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K hfield))) (DivisionSemiring.toSemiring.{u1} L (Semifield.toDivisionSemiring.{u1} L (Field.toSemifield.{u1} L _inst_1))) f a (RatFunc.denom.{u2} K hfield y)) (OfNat.ofNat.{u1} L 0 (Zero.toOfNat0.{u1} L (CommMonoidWithZero.toZero.{u1} L (CommGroupWithZero.toCommMonoidWithZero.{u1} L (Semifield.toCommGroupWithZero.{u1} L (Field.toSemifield.{u1} L _inst_1))))))) -> (Eq.{succ u1} L (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a (HMul.hMul.{u2, u2, u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (instHMul.{u2} (RatFunc.{u2} K (Field.toCommRing.{u2} K hfield)) (RatFunc.instMulRatFunc.{u2} K (Field.toCommRing.{u2} K hfield))) x y)) (HMul.hMul.{u1, u1, u1} L L L (instHMul.{u1} L (NonUnitalNonAssocRing.toMul.{u1} L (NonAssocRing.toNonUnitalNonAssocRing.{u1} L (Ring.toNonAssocRing.{u1} L (DivisionRing.toRing.{u1} L (Field.toDivisionRing.{u1} L _inst_1)))))) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a x) (RatFunc.eval.{u2, u1} K hfield L _inst_1 f a y)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.eval_mul RatFunc.eval_mulₓ'. -/
/-- `eval` is a multiplicative homomorphism except when a denominator evaluates to `0`.
Counterexample: `eval _ 0 X * eval _ 0 (1/X) = 0 ≠ 1 = eval _ 0 1 = eval _ 0 (X * 1/X)`.
See also `ratfunc.eval₂_denom_ne_zero` to make the hypotheses simpler but less general.
-/
-theorem eval_mul {x y : Ratfunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
+theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
(hy : Polynomial.eval₂ f a (denom y) ≠ 0) : eval f a (x * y) = eval f a x * eval f a y :=
by
unfold eval
@@ -1505,7 +2128,7 @@ theorem eval_mul {x y : Ratfunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
repeat' rw [← Polynomial.eval₂_mul]
congr 1
apply num_denom_mul
-#align ratfunc.eval_mul Ratfunc.eval_mul
+#align ratfunc.eval_mul RatFunc.eval_mul
end Eval
@@ -1517,57 +2140,80 @@ omit hring
variable [Field K]
+#print RatFunc.intDegree /-
/-- `int_degree x` is the degree of the rational function `x`, defined as the difference between
the `nat_degree` of its numerator and the `nat_degree` of its denominator. In particular,
`int_degree 0 = 0`. -/
-def intDegree (x : Ratfunc K) : ℤ :=
+def intDegree (x : RatFunc K) : ℤ :=
natDegree x.num - natDegree x.den
-#align ratfunc.int_degree Ratfunc.intDegree
+#align ratfunc.int_degree RatFunc.intDegree
+-/
+#print RatFunc.intDegree_zero /-
@[simp]
-theorem intDegree_zero : intDegree (0 : Ratfunc K) = 0 := by
+theorem intDegree_zero : intDegree (0 : RatFunc K) = 0 := by
rw [int_degree, num_zero, nat_degree_zero, denom_zero, nat_degree_one, sub_self]
-#align ratfunc.int_degree_zero Ratfunc.intDegree_zero
+#align ratfunc.int_degree_zero RatFunc.intDegree_zero
+-/
+#print RatFunc.intDegree_one /-
@[simp]
-theorem intDegree_one : intDegree (1 : Ratfunc K) = 0 := by
+theorem intDegree_one : intDegree (1 : RatFunc K) = 0 := by
rw [int_degree, num_one, denom_one, sub_self]
-#align ratfunc.int_degree_one Ratfunc.intDegree_one
+#align ratfunc.int_degree_one RatFunc.intDegree_one
+-/
+/- warning: ratfunc.int_degree_C -> RatFunc.intDegree_C is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (k : K), Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (fun (_x : RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) => K -> (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) (RingHom.hasCoeToFun.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} K (Ring.toNonAssocRing.{u1} K (CommRing.toRing.{u1} K (Field.toCommRing.{u1} K _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RatFunc.C.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)) k)) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
+but is expected to have type
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] (k : K), Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (fun (_x : K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : K) => RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} K (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))))) (RatFunc.C.{u1} K _inst_1) k)) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0))
+Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_C RatFunc.intDegree_Cₓ'. -/
@[simp]
-theorem intDegree_c (k : K) : intDegree (Ratfunc.c k) = 0 := by
+theorem intDegree_C (k : K) : intDegree (RatFunc.C k) = 0 := by
rw [int_degree, num_C, nat_degree_C, denom_C, nat_degree_one, sub_self]
-#align ratfunc.int_degree_C Ratfunc.intDegree_c
+#align ratfunc.int_degree_C RatFunc.intDegree_C
+#print RatFunc.intDegree_X /-
@[simp]
-theorem intDegree_x : intDegree (x : Ratfunc K) = 1 := by
- rw [int_degree, Ratfunc.num_x, Polynomial.natDegree_X, Ratfunc.denom_x, Polynomial.natDegree_one,
+theorem intDegree_X : intDegree (X : RatFunc K) = 1 := by
+ rw [int_degree, RatFunc.num_X, Polynomial.natDegree_X, RatFunc.denom_X, Polynomial.natDegree_one,
Int.ofNat_one, Int.ofNat_zero, sub_zero]
-#align ratfunc.int_degree_X Ratfunc.intDegree_x
+#align ratfunc.int_degree_X RatFunc.intDegree_X
+-/
+/- warning: ratfunc.int_degree_polynomial -> RatFunc.intDegree_polynomial is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {p : Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))}, Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) => (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) -> (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.field.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))) (RatFunc.algebra.{u1, u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1) (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) p)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Polynomial.natDegree.{u1} K (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) p))
+but is expected to have type
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {p : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))}, Eq.{1} Int (RatFunc.intDegree.{u1} K _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (fun (_x : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) => RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instFieldRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} K (Field.toCommRing.{u1} K _inst_1) (Field.isDomain.{u1} K _inst_1) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))) (Polynomial.commSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1)))))) p)) (Nat.cast.{0} Int instNatCastInt (Polynomial.natDegree.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_1))) p))
+Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_polynomial RatFunc.intDegree_polynomialₓ'. -/
@[simp]
-theorem intDegree_polynomial {p : K[X]} : intDegree (algebraMap K[X] (Ratfunc K) p) = natDegree p :=
+theorem intDegree_polynomial {p : K[X]} : intDegree (algebraMap K[X] (RatFunc K) p) = natDegree p :=
by
- rw [int_degree, Ratfunc.num_algebraMap, Ratfunc.denom_algebraMap, Polynomial.natDegree_one,
+ rw [int_degree, RatFunc.num_algebraMap, RatFunc.denom_algebraMap, Polynomial.natDegree_one,
Int.ofNat_zero, sub_zero]
-#align ratfunc.int_degree_polynomial Ratfunc.intDegree_polynomial
+#align ratfunc.int_degree_polynomial RatFunc.intDegree_polynomial
-theorem intDegree_mul {x y : Ratfunc K} (hx : x ≠ 0) (hy : y ≠ 0) :
+#print RatFunc.intDegree_mul /-
+theorem intDegree_mul {x y : RatFunc K} (hx : x ≠ 0) (hy : y ≠ 0) :
intDegree (x * y) = intDegree x + intDegree y :=
by
simp only [int_degree, add_sub, sub_add, sub_sub_eq_add_sub, sub_sub, sub_eq_sub_iff_add_eq_add]
norm_cast
rw [← Polynomial.natDegree_mul x.denom_ne_zero y.denom_ne_zero, ←
- Polynomial.natDegree_mul (Ratfunc.num_ne_zero (mul_ne_zero hx hy))
+ Polynomial.natDegree_mul (RatFunc.num_ne_zero (mul_ne_zero hx hy))
(mul_ne_zero x.denom_ne_zero y.denom_ne_zero),
- ← Polynomial.natDegree_mul (Ratfunc.num_ne_zero hx) (Ratfunc.num_ne_zero hy), ←
- Polynomial.natDegree_mul (mul_ne_zero (Ratfunc.num_ne_zero hx) (Ratfunc.num_ne_zero hy))
+ ← Polynomial.natDegree_mul (RatFunc.num_ne_zero hx) (RatFunc.num_ne_zero hy), ←
+ Polynomial.natDegree_mul (mul_ne_zero (RatFunc.num_ne_zero hx) (RatFunc.num_ne_zero hy))
(x * y).den_nz,
- Ratfunc.num_denom_mul]
-#align ratfunc.int_degree_mul Ratfunc.intDegree_mul
+ RatFunc.num_denom_mul]
+#align ratfunc.int_degree_mul RatFunc.intDegree_mul
+-/
+#print RatFunc.intDegree_neg /-
@[simp]
-theorem intDegree_neg (x : Ratfunc K) : intDegree (-x) = intDegree x :=
+theorem intDegree_neg (x : RatFunc K) : intDegree (-x) = intDegree x :=
by
by_cases hx : x = 0
· rw [hx, neg_zero]
@@ -1575,16 +2221,20 @@ theorem intDegree_neg (x : Ratfunc K) : intDegree (-x) = intDegree x :=
exact
nat_degree_sub_eq_of_prod_eq (num_ne_zero (neg_ne_zero.mpr hx)) (denom_ne_zero (-x))
(neg_ne_zero.mpr (num_ne_zero hx)) (denom_ne_zero x) (num_denom_neg x)
-#align ratfunc.int_degree_neg Ratfunc.intDegree_neg
+#align ratfunc.int_degree_neg RatFunc.intDegree_neg
+-/
-theorem intDegree_add {x y : Ratfunc K} (hxy : x + y ≠ 0) :
+#print RatFunc.intDegree_add /-
+theorem intDegree_add {x y : RatFunc K} (hxy : x + y ≠ 0) :
(x + y).intDegree = (x.num * y.den + x.den * y.num).natDegree - (x.den * y.den).natDegree :=
natDegree_sub_eq_of_prod_eq (num_ne_zero hxy) (x + y).den_nz
(num_mul_denom_add_denom_mul_num_ne_zero hxy) (mul_ne_zero x.den_nz y.den_nz)
(num_denom_add x y)
-#align ratfunc.int_degree_add Ratfunc.intDegree_add
+#align ratfunc.int_degree_add RatFunc.intDegree_add
+-/
-theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : Ratfunc K}
+#print RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree /-
+theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : RatFunc K}
(hx : x ≠ 0) {s : K[X]} (hs : s ≠ 0) :
((x.num * s).natDegree : ℤ) - (s * x.den).natDegree = x.intDegree :=
by
@@ -1592,9 +2242,16 @@ theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : R
nat_degree_sub_eq_of_prod_eq (mul_ne_zero (num_ne_zero hx) hs) (mul_ne_zero hs x.denom_ne_zero)
(num_ne_zero hx) x.denom_ne_zero
rw [mul_assoc]
-#align ratfunc.nat_degree_num_mul_right_sub_nat_degree_denom_mul_left_eq_int_degree Ratfunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree
+#align ratfunc.nat_degree_num_mul_right_sub_nat_degree_denom_mul_left_eq_int_degree RatFunc.natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree
+-/
-theorem intDegree_add_le {x y : Ratfunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
+/- warning: ratfunc.int_degree_add_le -> RatFunc.intDegree_add_le is a dubious translation:
+lean 3 declaration is
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)}, (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) y (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K _inst_1)))))) -> (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y) (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasZero.{u1} K (Field.toCommRing.{u1} K _inst_1)))))) -> (LE.le.{0} Int Int.hasLe (RatFunc.intDegree.{u1} K _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.hasAdd.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y)) (LinearOrder.max.{0} Int Int.linearOrder (RatFunc.intDegree.{u1} K _inst_1 x) (RatFunc.intDegree.{u1} K _inst_1 y)))
+but is expected to have type
+ forall {K : Type.{u1}} [_inst_1 : Field.{u1} K] {x : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)} {y : RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)}, (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) y (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instZeroRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))))) -> (Ne.{succ u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instAddRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y) (OfNat.ofNat.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instZeroRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))))) -> (LE.le.{0} Int Int.instLEInt (RatFunc.intDegree.{u1} K _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (instHAdd.{u1} (RatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1)) (RatFunc.instAddRatFunc.{u1} K (Field.toCommRing.{u1} K _inst_1))) x y)) (Max.max.{0} Int Int.instMaxInt (RatFunc.intDegree.{u1} K _inst_1 x) (RatFunc.intDegree.{u1} K _inst_1 y)))
+Case conversion may be inaccurate. Consider using '#align ratfunc.int_degree_add_le RatFunc.intDegree_add_leₓ'. -/
+theorem intDegree_add_le {x y : RatFunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
intDegree (x + y) ≤ max (intDegree x) (intDegree y) :=
by
by_cases hx : x = 0
@@ -1606,7 +2263,7 @@ theorem intDegree_add_le {x y : Ratfunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
le_max_iff, sub_le_sub_iff_right, Int.ofNat_le, sub_le_sub_iff_right, Int.ofNat_le, ←
le_max_iff, mul_comm y.num]
exact nat_degree_add_le _ _
-#align ratfunc.int_degree_add_le Ratfunc.intDegree_add_le
+#align ratfunc.int_degree_add_le RatFunc.intDegree_add_le
end IntDegree
@@ -1616,113 +2273,221 @@ open PowerSeries LaurentSeries HahnSeries
omit hring
-variable {F : Type u} [Field F] (p q : F[X]) (f g : Ratfunc F)
+variable {F : Type u} [Field F] (p q : F[X]) (f g : RatFunc F)
+/- warning: ratfunc.coe_alg_hom -> RatFunc.coeAlgHom is a dubious translation:
+lean 3 declaration is
+ forall (F : Type.{u1}) [_inst_2 : Field.{u1} F], AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))))
+but is expected to have type
+ forall (F : Type.{u1}) [_inst_2 : Field.{u1} F], AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_2) (Field.isDomain.{u1} F _inst_2) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_alg_hom RatFunc.coeAlgHomₓ'. -/
/-- The coercion `ratfunc F → laurent_series F` as bundled alg hom. -/
-def coeAlgHom (F : Type u) [Field F] : Ratfunc F →ₐ[F[X]] LaurentSeries F :=
+def coeAlgHom (F : Type u) [Field F] : RatFunc F →ₐ[F[X]] LaurentSeries F :=
liftAlgHom (Algebra.ofId _ _) <|
nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ <|
Polynomial.algebraMap_hahnSeries_injective _
-#align ratfunc.coe_alg_hom Ratfunc.coeAlgHom
-
-instance coeToLaurentSeries : Coe (Ratfunc F) (LaurentSeries F) :=
+#align ratfunc.coe_alg_hom RatFunc.coeAlgHom
+
+/- warning: ratfunc.coe_to_laurent_series -> RatFunc.coeToLaurentSeries is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeriesₓ'. -/
+instance coeToLaurentSeries : Coe (RatFunc F) (LaurentSeries F) :=
⟨coeAlgHom F⟩
-#align ratfunc.coe_to_laurent_series Ratfunc.coeToLaurentSeries
-
+#align ratfunc.coe_to_laurent_series RatFunc.coeToLaurentSeries
+
+/- warning: ratfunc.coe_def -> RatFunc.coe_def is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (fun (_x : AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ([anonymous].{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f)
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toAddZeroClass.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AlgHom.algHomClass.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f)
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_def RatFunc.coe_defₓ'. -/
theorem coe_def : (f : LaurentSeries F) = coeAlgHom F f :=
rfl
-#align ratfunc.coe_def Ratfunc.coe_def
-
+#align ratfunc.coe_def RatFunc.coe_def
+
+/- warning: ratfunc.coe_num_denom -> RatFunc.coe_num_denom is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeTrans.{succ u1, succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.hasCoe.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Polynomial.coeToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.num.{u1} F _inst_1 f)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeTrans.{succ u1, succ u1, succ u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (PowerSeries.{u1} F) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.hasCoe.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Polynomial.coeToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.denom.{u1} F _inst_1 f)))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.denom.{u1} F _inst_1 f))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (fun (a : PowerSeries.{u1} F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (PowerSeries.{u1} F) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.ofPowerSeries.{0, u1} Int F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.num.{u1} F _inst_1 f))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (fun (a : PowerSeries.{u1} F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : PowerSeries.{u1} F) => HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (PowerSeries.{u1} F) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (PowerSeries.{u1} F) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (PowerSeries.{u1} F) (HahnSeries.{0, u1} Int F (StrictOrderedSemiring.toPartialOrder.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (MonoidWithZero.toZero.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (PowerSeries.{u1} F) (PowerSeries.instSemiringPowerSeries.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.ofPowerSeries.{0, u1} Int F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.ToPowerSeries.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (RatFunc.denom.{u1} F _inst_1 f))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_num_denom RatFunc.coe_num_denomₓ'. -/
theorem coe_num_denom : (f : LaurentSeries F) = f.num / f.den :=
liftAlgHom_apply _ _ f
-#align ratfunc.coe_num_denom Ratfunc.coe_num_denom
-
-theorem coe_injective : Function.Injective (coe : Ratfunc F → LaurentSeries F) :=
+#align ratfunc.coe_num_denom RatFunc.coe_num_denom
+
+/- warning: ratfunc.coe_injective -> RatFunc.coe_injective is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Function.Injective.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Function.Injective.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1)
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_injective RatFunc.coe_injectiveₓ'. -/
+theorem coe_injective : Function.Injective (coe : RatFunc F → LaurentSeries F) :=
liftAlgHom_injective _ (Polynomial.algebraMap_hahnSeries_injective _)
-#align ratfunc.coe_injective Ratfunc.coe_injective
-
+#align ratfunc.coe_injective RatFunc.coe_injective
+
+/- warning: ratfunc.coe_apply -> RatFunc.coe_apply is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeFn.{succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (fun (_x : AlgHom.{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ([anonymous].{u1, u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f)
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (SMulHomClass.toFunLike.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddMonoid.toAddZeroClass.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (SMulZeroClass.toSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribSMul.toSMulZeroClass.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoid.toAddZeroClass.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (DistribMulAction.toDistribSMul.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (DistribMulActionHomClass.toSMulHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) (AddCommMonoid.toAddMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Algebra.toModule.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AlgHom.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (AlgHom.algHomClass.{u1, u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))))) (RatFunc.coeAlgHom.{u1} F _inst_1) f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f)
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_apply RatFunc.coe_applyₓ'. -/
@[simp, norm_cast]
theorem coe_apply : coeAlgHom F f = f :=
rfl
-#align ratfunc.coe_apply Ratfunc.coe_apply
-
+#align ratfunc.coe_apply RatFunc.coe_apply
+
+/- warning: ratfunc.coe_zero -> RatFunc.coe_zero is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (OfNat.mk.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (Zero.zero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasZero.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 0 (OfNat.mk.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 0 (Zero.zero.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))))))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 0 (Zero.toOfNat0.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instZeroRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) 0 (Zero.toOfNat0.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_zero RatFunc.coe_zeroₓ'. -/
@[simp, norm_cast]
-theorem coe_zero : ((0 : Ratfunc F) : LaurentSeries F) = 0 :=
+theorem coe_zero : ((0 : RatFunc F) : LaurentSeries F) = 0 :=
(coeAlgHom F).map_zero
-#align ratfunc.coe_zero Ratfunc.coe_zero
-
+#align ratfunc.coe_zero RatFunc.coe_zero
+
+/- warning: ratfunc.coe_one -> RatFunc.coe_one is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (OfNat.mk.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (One.one.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasOne.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 1 (OfNat.mk.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) 1 (One.one.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasOne.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (AddMonoidWithOne.toOne.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (OfNat.ofNat.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) 1 (One.toOfNat1.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instOneRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))))) (OfNat.ofNat.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) 1 (One.toOfNat1.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instOneHahnSeriesToPartialOrder.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toOne.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_one RatFunc.coe_oneₓ'. -/
@[simp, norm_cast]
-theorem coe_one : ((1 : Ratfunc F) : LaurentSeries F) = 1 :=
+theorem coe_one : ((1 : RatFunc F) : LaurentSeries F) = 1 :=
(coeAlgHom F).map_one
-#align ratfunc.coe_one Ratfunc.coe_one
-
+#align ratfunc.coe_one RatFunc.coe_one
+
+/- warning: ratfunc.coe_add -> RatFunc.coe_add is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHAdd.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasAdd.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HAdd.hAdd.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHAdd.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasAdd.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HAdd.hAdd.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHAdd.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instAddRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HAdd.hAdd.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHAdd.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instAddHahnSeriesToZero.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (Ring.toAddGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_add RatFunc.coe_addₓ'. -/
@[simp, norm_cast]
-theorem coe_add : ((f + g : Ratfunc F) : LaurentSeries F) = f + g :=
+theorem coe_add : ((f + g : RatFunc F) : LaurentSeries F) = f + g :=
(coeAlgHom F).map_add _ _
-#align ratfunc.coe_add Ratfunc.coe_add
-
+#align ratfunc.coe_add RatFunc.coe_add
+
+/- warning: ratfunc.coe_sub -> RatFunc.coe_sub is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSub.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasSub.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HSub.hSub.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHSub.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (SubNegMonoid.toHasSub.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (AddGroup.toSubNegMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.addGroup.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddGroupWithOne.toAddGroup.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HSub.hSub.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSub.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instSubRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HSub.hSub.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHSub.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Ring.toSub.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instRingHahnSeriesToPartialOrderToZeroToMonoidWithZeroToSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_sub RatFunc.coe_subₓ'. -/
@[simp, norm_cast]
-theorem coe_sub : ((f - g : Ratfunc F) : LaurentSeries F) = f - g :=
+theorem coe_sub : ((f - g : RatFunc F) : LaurentSeries F) = f - g :=
(coeAlgHom F).map_sub _ _
-#align ratfunc.coe_sub Ratfunc.coe_sub
-
+#align ratfunc.coe_sub RatFunc.coe_sub
+
+/- warning: ratfunc.coe_neg -> RatFunc.coe_neg is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (Neg.neg.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasNeg.{u1} F (Field.toCommRing.{u1} F _inst_1)) f)) (Neg.neg.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (SubNegMonoid.toHasNeg.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (AddGroup.toSubNegMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.addGroup.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (AddGroupWithOne.toAddGroup.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (Neg.neg.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instNegRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) f)) (Neg.neg.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Ring.toNeg.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instRingHahnSeriesToPartialOrderToZeroToMonoidWithZeroToSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_neg RatFunc.coe_negₓ'. -/
@[simp, norm_cast]
-theorem coe_neg : ((-f : Ratfunc F) : LaurentSeries F) = -f :=
+theorem coe_neg : ((-f : RatFunc F) : LaurentSeries F) = -f :=
(coeAlgHom F).map_neg _
-#align ratfunc.coe_neg Ratfunc.coe_neg
-
+#align ratfunc.coe_neg RatFunc.coe_neg
+
+/- warning: ratfunc.coe_mul -> RatFunc.coe_mul is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasMul.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HMul.hMul.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHMul.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasMul.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HMul.hMul.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instMulRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) f g)) (HMul.hMul.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instMulHahnSeriesToPartialOrderToZeroToMulZeroClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_mul RatFunc.coe_mulₓ'. -/
@[simp, norm_cast]
-theorem coe_mul : ((f * g : Ratfunc F) : LaurentSeries F) = f * g :=
+theorem coe_mul : ((f * g : RatFunc F) : LaurentSeries F) = f * g :=
(coeAlgHom F).map_mul _ _
-#align ratfunc.coe_mul Ratfunc.coe_mul
-
+#align ratfunc.coe_mul RatFunc.coe_mul
+
+/- warning: ratfunc.coe_pow -> RatFunc.coe_pow is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (n : Nat), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HPow.hPow.{u1, 0, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHPow.{u1, 0} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (Monoid.Pow.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) f n)) (HPow.hPow.{u1, 0, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) Nat (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHPow.{u1, 0} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) Nat (Monoid.Pow.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Ring.toMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.ring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) n)
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (n : Nat), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HPow.hPow.{u1, 0, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHPow.{u1, 0} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) Nat (Monoid.Pow.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (MonoidWithZero.toMonoid.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toMonoidWithZero.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))))) f n)) (HPow.hPow.{u1, 0, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) Nat (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHPow.{u1, 0} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) Nat (Monoid.Pow.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (MonoidWithZero.toMonoid.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toMonoidWithZero.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) n)
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_pow RatFunc.coe_powₓ'. -/
@[simp, norm_cast]
-theorem coe_pow (n : ℕ) : ((f ^ n : Ratfunc F) : LaurentSeries F) = f ^ n :=
+theorem coe_pow (n : ℕ) : ((f ^ n : RatFunc F) : LaurentSeries F) = f ^ n :=
(coeAlgHom F).map_pow _ _
-#align ratfunc.coe_pow Ratfunc.coe_pow
-
+#align ratfunc.coe_pow RatFunc.coe_pow
+
+/- warning: ratfunc.coe_div -> RatFunc.coe_div is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasDiv.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) f g)) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) g))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (g : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) f g)) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHDiv.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Field.toDiv.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 g))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_div RatFunc.coe_divₓ'. -/
@[simp, norm_cast]
theorem coe_div :
- ((f / g : Ratfunc F) : LaurentSeries F) = (f : LaurentSeries F) / (g : LaurentSeries F) :=
+ ((f / g : RatFunc F) : LaurentSeries F) = (f : LaurentSeries F) / (g : LaurentSeries F) :=
map_div₀ (coeAlgHom F) _ _
-#align ratfunc.coe_div Ratfunc.coe_div
-
+#align ratfunc.coe_div RatFunc.coe_div
+
+/- warning: ratfunc.coe_C -> RatFunc.coe_C is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => F -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (NonAssocRing.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toNonAssocRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RatFunc.C.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)) r)) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => F -> (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.nonAssocSemiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (HahnSeries.C.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (NonAssocRing.toNonAssocSemiring.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) r)
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : F) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (RatFunc.C.{u1} F _inst_1) r)) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : F) => HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} F (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonUnitalNonAssocSemiring.toMul.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedCancelAddCommMonoid.toPartialOrder.{0} Int (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (MulZeroOneClass.toZero.{u1} F (NonAssocSemiring.toMulZeroOneClass.{u1} F (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instNonAssocSemiringHahnSeriesToPartialOrderToZeroToMulZeroOneClass.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (HahnSeries.C.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Semiring.toNonAssocSemiring.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) r)
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_C RatFunc.coe_Cₓ'. -/
@[simp, norm_cast]
-theorem coe_c (r : F) : ((c r : Ratfunc F) : LaurentSeries F) = HahnSeries.C r := by
+theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r := by
rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_C, coe_C, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
-#align ratfunc.coe_C Ratfunc.coe_c
-
+#align ratfunc.coe_C RatFunc.coe_C
+
+/- warning: ratfunc.coe_smul -> RatFunc.coe_smul is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (SMul.smul.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasSmul.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) F (Localization.hasSmul.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (nonZeroDivisors.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Ring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toRing.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) F (SMulZeroClass.toHasSmul.{u1, u1} F (Polynomial.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.zero.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.smulZeroClass.{u1, u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) F (DistribSMul.toSmulZeroClass.{u1, u1} F F (AddMonoid.toAddZeroClass.{u1} F (AddMonoidWithOne.toAddMonoid.{u1} F (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} F (NonAssocSemiring.toAddCommMonoidWithOne.{u1} F (Semiring.toNonAssocSemiring.{u1} F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (Polynomial.isScalarTower_right.{u1, u1} F F (Ring.toSemiring.{u1} F (CommRing.toRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (IsScalarTower.right.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) r f)) (SMul.smul.{u1, u1} F (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.hasSmul.{0, u1, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Module.toDistribMulAction.{u1, u1} F F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toAddCommGroup.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) r ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) f))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (f : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (r : F), Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (HSMul.hSMul.{u1, u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHSMul.{u1, u1} F (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instSMulRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) F (Localization.instSMulLocalization.{u1, u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommMonoid.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1))) (nonZeroDivisors.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (CommRing.toCommSemiring.{u1} (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.commRing.{u1} F (Field.toCommRing.{u1} F _inst_1)))))) F (Algebra.toSMul.{u1, u1} F (Polynomial.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Polynomial.semiring.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.isScalarTower_right.{u1, u1} F F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))) (DistribMulAction.toDistribSMul.{u1, u1} F F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} F (NonAssocSemiring.toAddCommMonoidWithOne.{u1} F (Semiring.toNonAssocSemiring.{u1} F (CommSemiring.toSemiring.{u1} F (CommRing.toCommSemiring.{u1} F (Field.toCommRing.{u1} F _inst_1))))))) (Module.toDistribMulAction.{u1, u1} F F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (IsScalarTower.right.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))) r f)) (HSMul.hSMul.{u1, u1, u1} F (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (instHSMul.{u1, u1} F (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSMulHahnSeriesToZero.{0, u1, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) F (MonoidWithZero.toMonoid.{u1} F (Semiring.toMonoidWithZero.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (AddMonoidWithOne.toAddMonoid.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (Ring.toAddGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))) (Module.toDistribMulAction.{u1, u1} F F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (Semiring.toModule.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) r (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 f))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_smul RatFunc.coe_smulₓ'. -/
-- TODO: generalize over other modules
@[simp, norm_cast]
-theorem coe_smul (r : F) : ((r • f : Ratfunc F) : LaurentSeries F) = r • f := by
+theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • f := by
rw [smul_eq_C_mul, ← C_mul_eq_smul, coe_mul, coe_C]
-#align ratfunc.coe_smul Ratfunc.coe_smul
-
+#align ratfunc.coe_smul RatFunc.coe_smul
+
+/- warning: ratfunc.coe_X -> RatFunc.coe_X is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HasLiftT.mk.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (CoeTCₓ.coe.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeBase.{succ u1, succ u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (RatFunc.coeToLaurentSeries.{u1} F _inst_1)))) (RatFunc.X.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (coeFn.{succ u1, succ u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (fun (_x : ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) => F -> (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (ZeroHom.hasCoeToFun.{u1, u1} F (HahnSeries.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (HahnSeries.hasZero.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (HahnSeries.single.{0, u1} Int F (OrderedAddCommGroup.toPartialOrder.{0} Int (StrictOrderedRing.toOrderedAddCommGroup.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))) (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) (OfNat.ofNat.{u1} F 1 (OfNat.mk.{u1} F 1 (One.one.{u1} F (AddMonoidWithOne.toOne.{u1} F (AddGroupWithOne.toAddMonoidWithOne.{u1} F (AddCommGroupWithOne.toAddGroupWithOne.{u1} F (Ring.toAddCommGroupWithOne.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F], Eq.{succ u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RatFunc.coeToLaurentSeries_fun.{u1} F _inst_1 (RatFunc.X.{u1} F _inst_1)) (FunLike.coe.{succ u1, succ u1, succ u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (fun (_x : F) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.124 : F) => HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (ZeroHomClass.toFunLike.{u1, u1, u1} (ZeroHom.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (ZeroHom.zeroHomClass.{u1, u1} F (HahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.instZeroHahnSeries.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (HahnSeries.single.{0, u1} Int F (StrictOrderedRing.toPartialOrder.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (OfNat.ofNat.{0} Int 1 (instOfNatInt 1))) (OfNat.ofNat.{u1} F 1 (One.toOfNat1.{u1} F (Semiring.toOne.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align ratfunc.coe_X RatFunc.coe_Xₓ'. -/
@[simp, norm_cast]
-theorem coe_x : ((x : Ratfunc F) : LaurentSeries F) = single 1 1 := by
+theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
rw [coe_num_denom, num_X, denom_X, coe_coe, Polynomial.coe_X, coe_X, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
-#align ratfunc.coe_X Ratfunc.coe_x
+#align ratfunc.coe_X RatFunc.coe_X
-instance : Algebra (Ratfunc F) (LaurentSeries F) :=
+instance : Algebra (RatFunc F) (LaurentSeries F) :=
RingHom.toAlgebra (coeAlgHom F).toRingHom
+/- warning: ratfunc.algebra_map_apply_div -> RatFunc.algebraMap_apply_div is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (p : Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (q : Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))), Eq.{succ u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.LaurentSeries.algebra.{u1} F _inst_1)) (HDiv.hDiv.{u1, u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.hasDiv.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Ring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionRing.toRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toDivisionRing.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.field.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.algebra.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (HDiv.hDiv.{u1, u1, u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (instHDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivInvMonoid.toHasDiv.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (DivisionRing.toDivInvMonoid.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Field.toDivisionRing.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.field.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (fun (_x : RingHom.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) => (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) -> (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1))))))))) (RingHom.hasCoeToFun.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (LaurentSeries.{u1} F (MulZeroClass.toHasZero.{u1} F (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} F (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} F (NonAssocRing.toNonUnitalNonAssocRing.{u1} F (Ring.toNonAssocRing.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.semiring.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (Ring.toSemiring.{u1} F (DivisionRing.toRing.{u1} F (Field.toDivisionRing.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))
+but is expected to have type
+ forall {F : Type.{u1}} [_inst_1 : Field.{u1} F] (p : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (q : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (fun (_x : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (CommSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semifield.toCommSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.instAlgebraRatFuncToCommRingLaurentSeriesToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifieldToCommSemiringInstFieldRatFuncIsDomainInstSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZeroIntToOrderedCancelAddCommMonoidToStrictOrderedSemiringToLinearOrderedSemiringToLinearOrderedCommSemiringLinearOrderedCommRingToSemiringToDivisionSemiring.{u1} F _inst_1)) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) q) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HDiv.hDiv.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) q) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) p) (RatFunc.instDivRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (a : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) a) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1)))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (DivisionSemiring.toSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Semifield.toDivisionSemiring.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (Field.toSemifield.{u1} (RatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1)) (RatFunc.instFieldRatFunc.{u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1))))) (RatFunc.instAlgebraRatFuncToSemiringToDivisionSemiringToSemifieldInstFieldRatFunc.{u1, u1} F (Field.toCommRing.{u1} F _inst_1) (Field.isDomain.{u1} F _inst_1) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (Algebra.id.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))) (instHDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) (Field.toDiv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) p) (HahnSeries.instFieldHahnSeriesToPartialOrderToOrderedAddCommGroupToZeroToCommMonoidWithZeroToCommGroupWithZeroToSemifield.{0, u1} Int F Int.linearOrderedAddCommGroup _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) p) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (fun (_x : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) => LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (RingHom.instRingHomClassRingHom.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (CommSemiring.toSemiring.{u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Semiring.toNonAssocSemiring.{u1} (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))))))))) (algebraMap.{u1, u1} (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (LaurentSeries.{u1} F (CommMonoidWithZero.toZero.{u1} F (CommGroupWithZero.toCommMonoidWithZero.{u1} F (Semifield.toCommGroupWithZero.{u1} F (Field.toSemifield.{u1} F _inst_1))))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (HahnSeries.instSemiringHahnSeriesToPartialOrderToZeroToMonoidWithZero.{0, u1} Int F (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Int (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (HahnSeries.powerSeriesAlgebra.{0, u1, u1} Int F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (LinearOrderedSemiring.toStrictOrderedSemiring.{0} Int (LinearOrderedCommSemiring.toLinearOrderedSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))) (Polynomial.{u1} F (DivisionSemiring.toSemiring.{u1} F (Semifield.toDivisionSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))) (Polynomial.commSemiring.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1))) (PowerSeries.algebraPolynomial.{u1, u1} F F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)) (Algebra.id.{u1} F (Semifield.toCommSemiring.{u1} F (Field.toSemifield.{u1} F _inst_1)))))) q))
+Case conversion may be inaccurate. Consider using '#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_divₓ'. -/
theorem algebraMap_apply_div :
- algebraMap (Ratfunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
+ algebraMap (RatFunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap F[X] (LaurentSeries F) p / algebraMap _ _ q :=
by
convert coe_div _ _ <;>
rw [← mk_one, coe_def, coe_alg_hom, mk_eq_div, lift_alg_hom_apply_div, map_one, div_one,
Algebra.ofId_apply]
-#align ratfunc.algebra_map_apply_div Ratfunc.algebraMap_apply_div
+#align ratfunc.algebra_map_apply_div RatFunc.algebraMap_apply_div
-instance : IsScalarTower F[X] (Ratfunc F) (LaurentSeries F) :=
+instance : IsScalarTower F[X] (RatFunc F) (LaurentSeries F) :=
⟨fun x y z => by
ext
simp⟩
end LaurentSeries
-end Ratfunc
+end RatFunc
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -1688,7 +1688,7 @@ theorem coe_div :
#align ratfunc.coe_div Ratfunc.coe_div
@[simp, norm_cast]
-theorem coe_c (r : F) : ((c r : Ratfunc F) : LaurentSeries F) = HahnSeries.c r := by
+theorem coe_c (r : F) : ((c r : Ratfunc F) : LaurentSeries F) = HahnSeries.C r := by
rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_C, coe_C, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_C Ratfunc.coe_c
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -1689,7 +1689,7 @@ theorem coe_div :
@[simp, norm_cast]
theorem coe_c (r : F) : ((c r : Ratfunc F) : LaurentSeries F) = HahnSeries.c r := by
- rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_c, coe_C, coe_coe, Polynomial.coe_one,
+ rw [coe_num_denom, num_C, denom_C, coe_coe, Polynomial.coe_C, coe_C, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_C Ratfunc.coe_c
@@ -1701,7 +1701,7 @@ theorem coe_smul (r : F) : ((r • f : Ratfunc F) : LaurentSeries F) = r • f :
@[simp, norm_cast]
theorem coe_x : ((x : Ratfunc F) : LaurentSeries F) = single 1 1 := by
- rw [coe_num_denom, num_X, denom_X, coe_coe, Polynomial.coe_x, coe_X, coe_coe, Polynomial.coe_one,
+ rw [coe_num_denom, num_X, denom_X, coe_coe, Polynomial.coe_X, coe_X, coe_coe, Polynomial.coe_one,
PowerSeries.coe_one, div_one]
#align ratfunc.coe_X Ratfunc.coe_x
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -914,8 +914,8 @@ by mapping both the numerator and denominator and quotienting them. -/
def mapAlgHom (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) : Ratfunc K →ₐ[S] Ratfunc R :=
{ mapRingHom φ hφ with
commutes' := fun r => by
- simp_rw [RingHom.toFun_eq_coe, coe_map_ring_hom_eq_coe_map, algebra_map_apply r,
- map_apply_div, map_one, AlgHom.commutes] }
+ simp_rw [RingHom.toFun_eq_coe, coe_map_ring_hom_eq_coe_map, algebraMap_apply r, map_apply_div,
+ map_one, AlgHom.commutes] }
#align ratfunc.map_alg_hom Ratfunc.mapAlgHom
theorem coe_mapAlgHom_eq_coe_map (φ : K[X] →ₐ[S] R[X]) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) :
@@ -928,7 +928,7 @@ by mapping both the numerator and denominator and quotienting them. -/
def liftAlgHom : Ratfunc K →ₐ[S] L :=
{ liftRingHom φ.toRingHom hφ with
commutes' := fun r => by
- simp_rw [RingHom.toFun_eq_coe, AlgHom.toRingHom_eq_coe, algebra_map_apply r,
+ simp_rw [RingHom.toFun_eq_coe, AlgHom.toRingHom_eq_coe, algebraMap_apply r,
lift_ring_hom_apply_div, AlgHom.coe_toRingHom, map_one, div_one, AlgHom.commutes] }
#align ratfunc.lift_alg_hom Ratfunc.liftAlgHom
mathlib commit https://github.com/leanprover-community/mathlib/commit/09079525fd01b3dda35e96adaa08d2f943e1648c
@@ -270,7 +270,7 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ p q : K[X], P) (f0 : ∀ p
exact lift_on_condition_of_lift_on'_condition @H
#align ratfunc.lift_on'_mk Ratfunc.liftOn'_mk
-/- ./././Mathport/Syntax/Translate/Command.lean:317:38: unsupported irreducible non-definition -/
+/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
/-- Induction principle for `ratfunc K`: if `f p q : P (ratfunc.mk p q)` for all `p q`,
then `P` holds on all elements of `ratfunc K`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/57e09a1296bfb4330ddf6624f1028ba186117d82
@@ -1033,7 +1033,7 @@ theorem toFractionRingRingEquiv_symm_eq :
(toFractionRingRingEquiv K).symm = (IsLocalization.algEquiv K[X]⁰ _ _).toRingEquiv :=
by
ext x
- simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, AlgEquiv.coe_ring_equiv']
+ simp [to_fraction_ring_ring_equiv, of_fraction_ring_eq, AlgEquiv.coe_ringEquiv']
#align ratfunc.to_fraction_ring_ring_equiv_symm_eq Ratfunc.toFractionRingRingEquiv_symm_eq
end IsFractionRing
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -1340,7 +1340,7 @@ theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : Ratfunc K} (hxy : x + y
x.num * y.den + x.den * y.num ≠ 0 := by
intro h_zero
have h := num_denom_add x y
- rw [h_zero, zero_mul] at h
+ rw [h_zero, MulZeroClass.zero_mul] at h
exact (mul_ne_zero (num_ne_zero hxy) (mul_ne_zero x.denom_ne_zero y.denom_ne_zero)) h
#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero Ratfunc.num_mul_denom_add_denom_mul_num_ne_zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -1072,7 +1072,7 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
have hdeg : (gcd p q).degree ≤ q.degree := degree_gcd_le_right _ hq
have hdeg' : (Polynomial.C a.leading_coeff⁻¹ * gcd p q).degree ≤ q.degree :=
by
- rw [Polynomial.degree_mul, Polynomial.degree_c hainv, zero_add]
+ rw [Polynomial.degree_mul, Polynomial.degree_C hainv, zero_add]
exact hdeg
have hdivp : Polynomial.C a.leading_coeff⁻¹ * gcd p q ∣ p :=
(C_mul_dvd hainv).mpr (gcd_dvd_left p q)
@@ -1080,7 +1080,7 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
(C_mul_dvd hainv).mpr (gcd_dvd_right p q)
rw [EuclideanDomain.mul_div_mul_cancel ha hdivp, EuclideanDomain.mul_div_mul_cancel ha hdivq,
leading_coeff_div hdeg, leading_coeff_div hdeg', Polynomial.leadingCoeff_mul,
- Polynomial.leadingCoeff_c, div_C_mul, div_C_mul, ← mul_assoc, ← Polynomial.C_mul, ←
+ Polynomial.leadingCoeff_C, div_C_mul, div_C_mul, ← mul_assoc, ← Polynomial.C_mul, ←
mul_assoc, ← Polynomial.C_mul]
constructor <;> congr <;>
rw [inv_div, mul_comm, mul_div_assoc, ← mul_assoc, inv_inv, _root_.mul_inv_cancel ha',
@@ -1541,7 +1541,7 @@ theorem intDegree_c (k : K) : intDegree (Ratfunc.c k) = 0 := by
@[simp]
theorem intDegree_x : intDegree (x : Ratfunc K) = 1 := by
- rw [int_degree, Ratfunc.num_x, Polynomial.natDegree_x, Ratfunc.denom_x, Polynomial.natDegree_one,
+ rw [int_degree, Ratfunc.num_x, Polynomial.natDegree_X, Ratfunc.denom_x, Polynomial.natDegree_one,
Int.ofNat_one, Int.ofNat_zero, sub_zero]
#align ratfunc.int_degree_X Ratfunc.intDegree_x
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -427,13 +427,13 @@ theorem toFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : Ratfunc K)
rw [← of_fraction_ring_smul]
#align ratfunc.to_fraction_ring_smul Ratfunc.toFractionRing_smul
-theorem smul_eq_c_smul (x : Ratfunc K) (r : K) : r • x = Polynomial.c r • x :=
+theorem smul_eq_c_smul (x : Ratfunc K) (r : K) : r • x = Polynomial.C r • x :=
by
cases x
induction x
·
rw [← of_fraction_ring_smul, ← of_fraction_ring_smul, Localization.smul_mk,
- Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_c_mul]
+ Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_C_mul]
· simp only
#align ratfunc.smul_eq_C_smul Ratfunc.smul_eq_c_smul
@@ -1059,8 +1059,8 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
if q = 0 then ⟨0, 1⟩
else
let r := gcd p q
- ⟨Polynomial.c (q / r).leadingCoeff⁻¹ * (p / r),
- Polynomial.c (q / r).leadingCoeff⁻¹ * (q / r)⟩)
+ ⟨Polynomial.C (q / r).leadingCoeff⁻¹ * (p / r),
+ Polynomial.C (q / r).leadingCoeff⁻¹ * (q / r)⟩)
(by
intro p q a hq ha
rw [if_neg hq, if_neg (mul_ne_zero ha hq)]
@@ -1070,18 +1070,18 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
simp only [Prod.ext_iff, gcd_mul_left, normalize_apply, Polynomial.coe_normUnit, mul_assoc,
CommGroupWithZero.coe_normUnit _ ha']
have hdeg : (gcd p q).degree ≤ q.degree := degree_gcd_le_right _ hq
- have hdeg' : (Polynomial.c a.leading_coeff⁻¹ * gcd p q).degree ≤ q.degree :=
+ have hdeg' : (Polynomial.C a.leading_coeff⁻¹ * gcd p q).degree ≤ q.degree :=
by
rw [Polynomial.degree_mul, Polynomial.degree_c hainv, zero_add]
exact hdeg
- have hdivp : Polynomial.c a.leading_coeff⁻¹ * gcd p q ∣ p :=
+ have hdivp : Polynomial.C a.leading_coeff⁻¹ * gcd p q ∣ p :=
(C_mul_dvd hainv).mpr (gcd_dvd_left p q)
- have hdivq : Polynomial.c a.leading_coeff⁻¹ * gcd p q ∣ q :=
+ have hdivq : Polynomial.C a.leading_coeff⁻¹ * gcd p q ∣ q :=
(C_mul_dvd hainv).mpr (gcd_dvd_right p q)
rw [EuclideanDomain.mul_div_mul_cancel ha hdivp, EuclideanDomain.mul_div_mul_cancel ha hdivq,
leading_coeff_div hdeg, leading_coeff_div hdeg', Polynomial.leadingCoeff_mul,
- Polynomial.leadingCoeff_c, div_C_mul, div_C_mul, ← mul_assoc, ← Polynomial.c_mul, ←
- mul_assoc, ← Polynomial.c_mul]
+ Polynomial.leadingCoeff_c, div_C_mul, div_C_mul, ← mul_assoc, ← Polynomial.C_mul, ←
+ mul_assoc, ← Polynomial.C_mul]
constructor <;> congr <;>
rw [inv_div, mul_comm, mul_div_assoc, ← mul_assoc, inv_inv, _root_.mul_inv_cancel ha',
one_mul, inv_div])
@@ -1090,8 +1090,8 @@ def numDenom (x : Ratfunc K) : K[X] × K[X] :=
@[simp]
theorem numDenom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
numDenom (algebraMap _ _ p / algebraMap _ _ q) =
- (Polynomial.c (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q),
- Polynomial.c (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q)) :=
+ (Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q),
+ Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q)) :=
by
rw [num_denom, lift_on'_div, if_neg hq]
intro p
@@ -1107,7 +1107,7 @@ def num (x : Ratfunc K) : K[X] :=
private theorem num_div' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) =
- Polynomial.c (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) :=
+ Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) :=
by rw [Num, num_denom_div _ hq]
#align ratfunc.num_div' ratfunc.num_div'
@@ -1118,7 +1118,7 @@ theorem num_zero : num (0 : Ratfunc K) = 0 := by convert num_div' (0 : K[X]) one
@[simp]
theorem num_div (p q : K[X]) :
num (algebraMap _ _ p / algebraMap _ _ q) =
- Polynomial.c (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) :=
+ Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) :=
by
by_cases hq : q = 0
· simp [hq]
@@ -1144,7 +1144,7 @@ theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@[simp]
theorem num_div_dvd' (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
- c (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) ∣ p := by simpa using num_div_dvd p hq
+ C (q / gcd p q).leadingCoeff⁻¹ * (p / gcd p q) ∣ p := by simpa using num_div_dvd p hq
#align ratfunc.num_div_dvd' Ratfunc.num_div_dvd'
/-- `ratfunc.denom` is the denominator of a rational function,
@@ -1156,7 +1156,7 @@ def denom (x : Ratfunc K) : K[X] :=
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
denom (algebraMap _ _ p / algebraMap _ _ q) =
- Polynomial.c (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) :=
+ Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) :=
by rw [denom, num_denom_div _ hq]
#align ratfunc.denom_div Ratfunc.denom_div
@@ -1364,12 +1364,12 @@ theorem algebraMap_eq_c : algebraMap K (Ratfunc K) = c :=
#align ratfunc.algebra_map_eq_C Ratfunc.algebraMap_eq_c
@[simp]
-theorem algebraMap_c (a : K) : algebraMap K[X] (Ratfunc K) (Polynomial.c a) = c a :=
+theorem algebraMap_c (a : K) : algebraMap K[X] (Ratfunc K) (Polynomial.C a) = c a :=
rfl
#align ratfunc.algebra_map_C Ratfunc.algebraMap_c
@[simp]
-theorem algebraMap_comp_c : (algebraMap K[X] (Ratfunc K)).comp Polynomial.c = c :=
+theorem algebraMap_comp_c : (algebraMap K[X] (Ratfunc K)).comp Polynomial.C = c :=
rfl
#align ratfunc.algebra_map_comp_C Ratfunc.algebraMap_comp_c
@@ -1379,11 +1379,11 @@ theorem smul_eq_c_mul (r : K) (x : Ratfunc K) : r • x = c r * x := by
/-- `ratfunc.X` is the polynomial variable (aka indeterminate). -/
def x : Ratfunc K :=
- algebraMap K[X] (Ratfunc K) Polynomial.x
+ algebraMap K[X] (Ratfunc K) Polynomial.X
#align ratfunc.X Ratfunc.x
@[simp]
-theorem algebraMap_x : algebraMap K[X] (Ratfunc K) Polynomial.x = x :=
+theorem algebraMap_x : algebraMap K[X] (Ratfunc K) Polynomial.X = x :=
rfl
#align ratfunc.algebra_map_X Ratfunc.algebraMap_x
@@ -1394,7 +1394,7 @@ variable [hfield : Field K]
include hfield
@[simp]
-theorem num_c (c : K) : num (c c) = Polynomial.c c :=
+theorem num_c (c : K) : num (c c) = Polynomial.C c :=
num_algebraMap _
#align ratfunc.num_C Ratfunc.num_c
@@ -1404,7 +1404,7 @@ theorem denom_c (c : K) : denom (c c) = 1 :=
#align ratfunc.denom_C Ratfunc.denom_c
@[simp]
-theorem num_x : num (x : Ratfunc K) = Polynomial.x :=
+theorem num_x : num (x : Ratfunc K) = Polynomial.X :=
num_algebraMap _
#align ratfunc.num_X Ratfunc.num_x
@@ -1414,7 +1414,7 @@ theorem denom_x : denom (x : Ratfunc K) = 1 :=
#align ratfunc.denom_X Ratfunc.denom_x
theorem x_ne_zero : (Ratfunc.x : Ratfunc K) ≠ 0 :=
- Ratfunc.algebraMap_ne_zero Polynomial.x_ne_zero
+ Ratfunc.algebraMap_ne_zero Polynomial.X_ne_zero
#align ratfunc.X_ne_zero Ratfunc.x_ne_zero
variable {L : Type _} [Field L]
mathlib commit https://github.com/leanprover-community/mathlib/commit/62e8311c791f02c47451bf14aa2501048e7c2f33
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit 831c494092374cfe9f50591ed0ac81a25efc5b86
+! leanprover-community/mathlib commit ec80bb1545ee17237ac0961a91bb2072780643c9
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -1661,11 +1661,26 @@ theorem coe_add : ((f + g : Ratfunc F) : LaurentSeries F) = f + g :=
(coeAlgHom F).map_add _ _
#align ratfunc.coe_add Ratfunc.coe_add
+@[simp, norm_cast]
+theorem coe_sub : ((f - g : Ratfunc F) : LaurentSeries F) = f - g :=
+ (coeAlgHom F).map_sub _ _
+#align ratfunc.coe_sub Ratfunc.coe_sub
+
+@[simp, norm_cast]
+theorem coe_neg : ((-f : Ratfunc F) : LaurentSeries F) = -f :=
+ (coeAlgHom F).map_neg _
+#align ratfunc.coe_neg Ratfunc.coe_neg
+
@[simp, norm_cast]
theorem coe_mul : ((f * g : Ratfunc F) : LaurentSeries F) = f * g :=
(coeAlgHom F).map_mul _ _
#align ratfunc.coe_mul Ratfunc.coe_mul
+@[simp, norm_cast]
+theorem coe_pow (n : ℕ) : ((f ^ n : Ratfunc F) : LaurentSeries F) = f ^ n :=
+ (coeAlgHom F).map_pow _ _
+#align ratfunc.coe_pow Ratfunc.coe_pow
+
@[simp, norm_cast]
theorem coe_div :
((f / g : Ratfunc F) : LaurentSeries F) = (f : LaurentSeries F) / (g : LaurentSeries F) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -489,13 +489,13 @@ def toFractionRingRingEquiv : Ratfunc K ≃+* FractionRing K[X]
omit hring
-/- ./././Mathport/Syntax/Translate/Expr.lean:334:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
/-- Solve equations for `ratfunc K` by working in `fraction_ring K[X]`. -/
unsafe def frac_tac : tactic Unit :=
sorry
#align ratfunc.frac_tac ratfunc.frac_tac
-/- ./././Mathport/Syntax/Translate/Expr.lean:334:4: warning: unsupported (TODO): `[tacs] -/
+/- ./././Mathport/Syntax/Translate/Expr.lean:330:4: warning: unsupported (TODO): `[tacs] -/
/-- Solve equations for `ratfunc K` by applying `ratfunc.induction_on`. -/
unsafe def smul_tac : tactic Unit :=
sorry
@@ -503,23 +503,23 @@ unsafe def smul_tac : tactic Unit :=
include hring
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.smul_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.smul_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.smul_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.smul_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.smul_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.smul_tac -/
instance : CommRing (Ratfunc K) where
add := (· + ·)
add_assoc := by
@@ -768,8 +768,8 @@ variable (K)
include hdomain
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:72:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:69:18: unsupported non-interactive tactic ratfunc.frac_tac -/
instance : Field (Ratfunc K) :=
{ Ratfunc.commRing K,
Ratfunc.nontrivial K with
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
NNRat.cast
(#11203)
Define the canonical coercion from the nonnegative rationals to any division semiring.
From LeanAPAP
@@ -787,6 +787,7 @@ instance instField [IsDomain K] : Field (RatFunc K) where
div_eq_mul_inv := by frac_tac
mul_inv_cancel _ := mul_inv_cancel
zpow := zpowRec
+ nnqsmul := _
qsmul := _
section IsFractionRing
NNRat.cast
(#12360)
This is the parts of the diff of #11203 which don't mention NNRat.cast
.
where
notation.qsmul := _
instead of qsmul := qsmulRec _
to make the instances more robust to definition changes.qsmulRec
.qsmul
before ratCast_def
in instance declarations.rat_smul
to qsmul
.@@ -780,16 +780,14 @@ end LiftHom
variable (K)
-instance instField [IsDomain K] : Field (RatFunc K) :=
- { RatFunc.instCommRing K, RatFunc.instNontrivial K with
- inv := Inv.inv
- -- Porting note: used to be `by frac_tac`
- inv_zero := by rw [← ofFractionRing_zero, ← ofFractionRing_inv, inv_zero]
- div := (· / ·)
- div_eq_mul_inv := by frac_tac
- mul_inv_cancel := fun _ => mul_inv_cancel
- zpow := zpowRec
- qsmul := qsmulRec _ }
+instance instField [IsDomain K] : Field (RatFunc K) where
+ -- Porting note: used to be `by frac_tac`
+ inv_zero := by rw [← ofFractionRing_zero, ← ofFractionRing_inv, inv_zero]
+ div := (· / ·)
+ div_eq_mul_inv := by frac_tac
+ mul_inv_cancel _ := mul_inv_cancel
+ zpow := zpowRec
+ qsmul := _
section IsFractionRing
Add five lemmas about coercions between Hahn or Laurent Series and Rational Functions
Co-authored-by: María Inés de Frutos Fernández @mariainesdff
@@ -816,6 +816,13 @@ instance (R : Type*) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K) w
variable {K}
+/-- The coercion from polynomials to rational functions, implemented as the algebra map from a
+domain to its field of fractions -/
+@[coe]
+def coePolynomial (P : Polynomial K) : RatFunc K := algebraMap _ _ P
+
+instance : Coe (Polynomial K) (RatFunc K) := ⟨coePolynomial⟩
+
theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
#align ratfunc.mk_one RatFunc.mk_one
@@ -1694,11 +1701,17 @@ theorem coe_apply : coeAlgHom F f = f :=
rfl
#align ratfunc.coe_apply RatFunc.coe_apply
+theorem coe_coe (P : Polynomial F) : (P : LaurentSeries F) = (P : RatFunc F) := by
+ simp only [coePolynomial, coe_def, AlgHom.commutes, Polynomial.algebraMap_hahnSeries_apply]
+
@[simp, norm_cast]
theorem coe_zero : ((0 : RatFunc F) : LaurentSeries F) = 0 :=
(coeAlgHom F).map_zero
#align ratfunc.coe_zero RatFunc.coe_zero
+theorem coe_ne_zero {f : Polynomial F} (hf : f ≠ 0) : (↑f : PowerSeries F) ≠ 0 := by
+ simp only [ne_eq, Polynomial.coe_eq_zero_iff, hf, not_false_eq_true]
+
@[simp, norm_cast]
theorem coe_one : ((1 : RatFunc F) : LaurentSeries F) = 1 :=
(coeAlgHom F).map_one
@@ -1761,6 +1774,30 @@ theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
set_option linter.uppercaseLean3 false in
#align ratfunc.coe_X RatFunc.coe_X
+theorem single_one_eq_pow {R : Type _} [Ring R] (n : ℕ) :
+ single (n : ℤ) (1 : R) = single (1 : ℤ) 1 ^ n := by
+ induction' n with n h_ind
+ · simp only [Nat.zero_eq, Int.ofNat_eq_coe, zpow_zero]
+ rfl
+ · rw [← Int.ofNat_add_one_out, pow_succ', ← h_ind, HahnSeries.single_mul_single, one_mul,
+ add_comm]
+
+theorem single_inv (d : ℤ) {α : F} (hα : α ≠ 0) :
+ single (-d) (α⁻¹ : F) = (single (d : ℤ) (α : F))⁻¹ := by
+ apply eq_inv_of_mul_eq_one_right
+ rw [HahnSeries.single_mul_single, add_right_neg, mul_comm,
+ inv_mul_cancel hα]
+ rfl
+
+
+theorem single_zpow (n : ℤ) :
+ single (n : ℤ) (1 : F) = single (1 : ℤ) 1 ^ n := by
+ induction' n with n_pos n_neg
+ · apply single_one_eq_pow
+ · rw [Int.negSucc_coe, Int.ofNat_add, Nat.cast_one, ← inv_one,
+ single_inv (n_neg + 1 : ℤ) one_ne_zero, zpow_neg, ← Nat.cast_one, ← Int.ofNat_add,
+ Nat.cast_one, inv_inj, zpow_natCast, single_one_eq_pow, inv_one]
+
instance : Algebra (RatFunc F) (LaurentSeries F) :=
RingHom.toAlgebra (coeAlgHom F).toRingHom
@@ -607,7 +607,7 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
RatFunc.liftOn f
(fun n d => if h : φ d ∈ S[X]⁰ then ofFractionRing (Localization.mk (φ n) ⟨φ d, h⟩) else 0)
fun {p q p' q'} hq hq' h => by
- dsimp only -- Porting note: force the function to be applied
+ beta_reduce -- Porting note(#12129): force the function to be applied
rw [dif_pos, dif_pos]
congr 1 -- Porting note: this was a `rw [ofFractionRing.inj_eq]` which was overkill anyway
rw [Localization.mk_eq_mk_iff]
@@ -617,12 +617,12 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
refine' Localization.r_of_eq _
simpa only [map_mul] using congr_arg φ h
map_one' := by
- dsimp only -- Porting note: force the function to be applied
+ beta_reduce -- Porting note(#12129): force the function to be applied
rw [← ofFractionRing_one, ← Localization.mk_one, liftOn_ofFractionRing_mk, dif_pos]
· simpa using ofFractionRing_one
· simpa using Submonoid.one_mem _
map_mul' x y := by
- dsimp only -- Porting note: force the function to be applied
+ beta_reduce -- Porting note(#12129): force the function to be applied
cases' x with x; cases' y with y
-- Porting note: added `using Localization.rec` (`Localization.induction_on` didn't work)
induction' x using Localization.rec with p q
@@ -699,7 +699,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
rw [div_eq_div_iff, ← map_mul, mul_comm p, h, map_mul, mul_comm] <;>
exact nonZeroDivisors.ne_zero (hφ ‹_›)
map_one' := by
- dsimp only -- Porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied (not just beta reduction!)
rw [← ofFractionRing_one, ← Localization.mk_one, liftOn_ofFractionRing_mk]
simp only [map_one, OneMemClass.coe_one, div_one]
map_mul' x y := by
@@ -712,7 +712,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
· rfl
· rfl
map_zero' := by
- dsimp only -- Porting note: force the function to be applied
+ beta_reduce -- Porting note(#12129): force the function to be applied
rw [← ofFractionRing_zero, ← Localization.mk_zero (1 : R[X]⁰), liftOn_ofFractionRing_mk]
simp only [map_zero, zero_div]
#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
In all cases, the original proof works now. I presume this is due to simp changes in Lean 4.7, but haven't verified.
@@ -1543,7 +1543,7 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
cases mul_eq_zero.mp this <;> contradiction
rw [div_mul_div_comm, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
- simp only [← Polynomial.eval₂_mul] -- Porting note: was `repeat' rw [← Polynomial.eval₂_mul]`
+ repeat' rw [← Polynomial.eval₂_mul]
congr 1
apply num_denom_mul
#align ratfunc.eval_mul RatFunc.eval_mul
OfNat
and Nat.cast
lemmas (#11861)
This renames
Int.cast_ofNat
to Int.cast_natCast
Int.int_cast_ofNat
to Int.cast_ofNat
I think the history here is that this lemma was previously about Int.ofNat
, before we globally fixed the simp-normal form to be Nat.cast
.
Since the Int.cast_ofNat
name is repurposed, it can't be deprecated. Int.int_cast_ofNat
is such a wonky name that it was probably never used.
@@ -529,7 +529,7 @@ macro "smul_tac" : tactic => `(tactic|
simp only [add_comm, mul_comm, zero_smul, succ_nsmul, zsmul_eq_mul, mul_add, mul_one, mul_zero,
neg_add, mul_neg,
Int.ofNat_eq_coe, Int.cast_zero, Int.cast_add, Int.cast_one,
- Int.cast_negSucc, Int.cast_ofNat, Nat.cast_succ,
+ Int.cast_negSucc, Int.cast_natCast, Nat.cast_succ,
Localization.mk_zero, Localization.add_mk_self, Localization.neg_mk,
ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_neg])
@@ -1164,7 +1164,7 @@ theorem num_div_dvd (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
num (algebraMap _ _ p / algebraMap _ _ q) ∣ p := by
rw [num_div _ q, C_mul_dvd]
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_left p q)
- · simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
+ · simpa only [Ne, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.num_div_dvd RatFunc.num_div_dvd
/-- A version of `num_div_dvd` with the LHS in simp normal form -/
@@ -1218,7 +1218,7 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
· simp [hq]
rw [denom_div _ hq, C_mul_dvd]
· exact EuclideanDomain.div_dvd_of_dvd (gcd_dvd_right p q)
- · simpa only [Ne.def, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
+ · simpa only [Ne, inv_eq_zero, Polynomial.leadingCoeff_eq_zero] using right_div_gcd_ne_zero hq
#align ratfunc.denom_div_dvd RatFunc.denom_div_dvd
@[simp]
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -117,7 +117,6 @@ namespace RatFunc
section CommRing
variable {K}
-
variable [CommRing K]
section Rec
@@ -463,9 +462,7 @@ set_option linter.uppercaseLean3 false in
section IsDomain
variable [IsDomain K]
-
variable [Monoid R] [DistribMulAction R K[X]]
-
variable [IsScalarTower R K[X] K[X]]
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q := by
@@ -791,7 +791,8 @@ instance instField [IsDomain K] : Field (RatFunc K) :=
div := (· / ·)
div_eq_mul_inv := by frac_tac
mul_inv_cancel := fun _ => mul_inv_cancel
- zpow := zpowRec }
+ zpow := zpowRec
+ qsmul := qsmulRec _ }
section IsFractionRing
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -1078,6 +1078,7 @@ open GCDMonoid Polynomial
variable [Field K]
+set_option tactic.skipAssignedInstances false in
/-- `RatFunc.numDenom` are numerator and denominator of a rational function over a field,
normalized such that the denominator is monic. -/
def numDenom (x : RatFunc K) : K[X] × K[X] :=
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -129,7 +129,7 @@ theorem ofFractionRing_injective : Function.Injective (ofFractionRing : _ → Ra
#align ratfunc.of_fraction_ring_injective RatFunc.ofFractionRing_injective
theorem toFractionRing_injective : Function.Injective (toFractionRing : _ → FractionRing K[X])
- -- porting note: the `xy` input was `rfl` and then there was no need for the `subst`
+ -- Porting note: the `xy` input was `rfl` and then there was no need for the `subst`
| ⟨x⟩, ⟨y⟩, xy => by subst xy; rfl
#align ratfunc.to_fraction_ring_injective RatFunc.toFractionRing_injective
@@ -153,7 +153,7 @@ protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : K[X] → K[X]
intros p p' q q' h
exact H q.2 q'.2 (let ⟨⟨c, hc⟩, mul_eq⟩ := Localization.r_iff_exists.mp h
mul_cancel_left_coe_nonZeroDivisors.mp mul_eq)
--- porting note: the definition above was as follows
+-- Porting note: the definition above was as follows
-- (-- Fix timeout by manipulating elaboration order
-- fun p q => f p q)
-- fun p p' q q' h => by
@@ -202,14 +202,14 @@ theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing (0 : FractionRing K
#align ratfunc.mk_zero RatFunc.mk_zero
theorem mk_coe_def (p : K[X]) (q : K[X]⁰) :
- -- porting note: filled in `(FractionRing K[X])` that was an underscore.
+ -- Porting note: filled in `(FractionRing K[X])` that was an underscore.
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' (FractionRing K[X]) p q) := by
simp only [mk_eq_div', ← Localization.mk_eq_mk', FractionRing.mk_eq_div]
#align ratfunc.mk_coe_def RatFunc.mk_coe_def
theorem mk_def_of_mem (p : K[X]) {q} (hq : q ∈ K[X]⁰) :
RatFunc.mk p q = ofFractionRing (IsLocalization.mk' (FractionRing K[X]) p ⟨q, hq⟩) := by
- -- porting note: there was an `[anonymous]` in the simp set
+ -- Porting note: there was an `[anonymous]` in the simp set
simp only [← mk_coe_def]
#align ratfunc.mk_def_of_mem RatFunc.mk_def_of_mem
@@ -223,7 +223,7 @@ theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) := by
- -- porting note: the original proof, did not need to pass `hq`
+ -- Porting note: the original proof, did not need to pass `hq`
rw [mk_def_of_ne _ hq, Localization.mk_eq_mk']
#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
@@ -237,7 +237,7 @@ theorem mk_one' (p : K[X]) :
theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
RatFunc.mk p q = RatFunc.mk p' q' ↔ p * q' = p' * q := by
rw [mk_def_of_ne _ hq, mk_def_of_ne _ hq', ofFractionRing_injective.eq_iff,
- IsLocalization.mk'_eq_iff_eq', -- porting note: removed `[anonymous], [anonymous]`
+ IsLocalization.mk'_eq_iff_eq', -- Porting note: removed `[anonymous], [anonymous]`
(IsFractionRing.injective K[X] (FractionRing K[X])).eq_iff]
#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
@@ -304,7 +304,7 @@ protected irreducible_def zero : RatFunc K :=
instance : Zero (RatFunc K) :=
⟨RatFunc.zero⟩
--- porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [zero_def]`
+-- Porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [zero_def]`
-- that does not close the goal
theorem ofFractionRing_zero : (ofFractionRing 0 : RatFunc K) = 0 := by
simp only [Zero.zero, OfNat.ofNat, RatFunc.zero]
@@ -318,7 +318,7 @@ protected irreducible_def add : RatFunc K → RatFunc K → RatFunc K
instance : Add (RatFunc K) :=
⟨RatFunc.add⟩
--- porting note: added `HAdd.hAdd`. using `simp?` produces `simp only [add_def]`
+-- Porting note: added `HAdd.hAdd`. using `simp?` produces `simp only [add_def]`
-- that does not close the goal
theorem ofFractionRing_add (p q : FractionRing K[X]) :
ofFractionRing (p + q) = ofFractionRing p + ofFractionRing q := by
@@ -333,7 +333,7 @@ protected irreducible_def sub : RatFunc K → RatFunc K → RatFunc K
instance : Sub (RatFunc K) :=
⟨RatFunc.sub⟩
--- porting note: added `HSub.hSub`. using `simp?` produces `simp only [sub_def]`
+-- Porting note: added `HSub.hSub`. using `simp?` produces `simp only [sub_def]`
-- that does not close the goal
theorem ofFractionRing_sub (p q : FractionRing K[X]) :
ofFractionRing (p - q) = ofFractionRing p - ofFractionRing q := by
@@ -360,7 +360,7 @@ protected irreducible_def one : RatFunc K :=
instance : One (RatFunc K) :=
⟨RatFunc.one⟩
--- porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [one_def]`
+-- Porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [one_def]`
-- that does not close the goal
theorem ofFractionRing_one : (ofFractionRing 1 : RatFunc K) = 1 := by
simp only [One.one, OfNat.ofNat, RatFunc.one]
@@ -374,7 +374,7 @@ protected irreducible_def mul : RatFunc K → RatFunc K → RatFunc K
instance : Mul (RatFunc K) :=
⟨RatFunc.mul⟩
--- porting note: added `HMul.hMul`. using `simp?` produces `simp only [mul_def]`
+-- Porting note: added `HMul.hMul`. using `simp?` produces `simp only [mul_def]`
-- that does not close the goal
theorem ofFractionRing_mul (p q : FractionRing K[X]) :
ofFractionRing (p * q) = ofFractionRing p * ofFractionRing q := by
@@ -393,7 +393,7 @@ protected irreducible_def div : RatFunc K → RatFunc K → RatFunc K
instance : Div (RatFunc K) :=
⟨RatFunc.div⟩
--- porting note: added `HDiv.hDiv`. using `simp?` produces `simp only [div_def]`
+-- Porting note: added `HDiv.hDiv`. using `simp?` produces `simp only [div_def]`
-- that does not close the goal
theorem ofFractionRing_div (p q : FractionRing K[X]) :
ofFractionRing (p / q) = ofFractionRing p / ofFractionRing q := by
@@ -418,7 +418,7 @@ theorem mul_inv_cancel : ∀ {p : RatFunc K}, p ≠ 0 → p * p⁻¹ = 1
| ⟨p⟩, h => by
have : p ≠ 0 := fun hp => h <| by rw [hp, ofFractionRing_zero]
simpa only [← ofFractionRing_inv, ← ofFractionRing_mul, ← ofFractionRing_one,
- ofFractionRing.injEq] using -- porting note: `ofFractionRing.injEq` was not present
+ ofFractionRing.injEq] using -- Porting note: `ofFractionRing.injEq` was not present
_root_.mul_inv_cancel this
#align ratfunc.mul_inv_cancel RatFunc.mul_inv_cancel
@@ -434,11 +434,11 @@ protected irreducible_def smul [SMul R (FractionRing K[X])] : R → RatFunc K
#align ratfunc.smul RatFunc.smul
-- cannot reproduce
---@[nolint fails_quickly] -- porting note: `linter 'fails_quickly' not found`
+--@[nolint fails_quickly] -- Porting note: `linter 'fails_quickly' not found`
instance [SMul R (FractionRing K[X])] : SMul R (RatFunc K) :=
⟨RatFunc.smul⟩
--- porting note: added `SMul.hSMul`. using `simp?` produces `simp only [smul_def]`
+-- Porting note: added `SMul.hSMul`. using `simp?` produces `simp only [smul_def]`
-- that does not close the goal
theorem ofFractionRing_smul [SMul R (FractionRing K[X])] (c : R) (p : FractionRing K[X]) :
ofFractionRing (c • p) = c • ofFractionRing p := by
@@ -512,7 +512,7 @@ end Field
section TacticInterlude
--- porting note: reimplemented the `frac_tac` and `smul_tac` as close to the originals as I could
+-- Porting note: reimplemented the `frac_tac` and `smul_tac` as close to the originals as I could
/-- Solve equations for `RatFunc K` by working in `FractionRing K[X]`. -/
macro "frac_tac" : tactic => `(tactic| repeat (rintro (⟨⟩ : RatFunc _)) <;>
try simp only [← ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_sub,
@@ -562,7 +562,7 @@ This is an intermediate step on the way to the full instance `RatFunc.instCommRi
def instAddCommGroup : AddCommGroup (RatFunc K) where
add := (· + ·)
add_assoc := by frac_tac
- -- porting note: `by frac_tac` didn't work:
+ -- Porting note: `by frac_tac` didn't work:
add_comm := by repeat rintro (⟨⟩ : RatFunc _) <;> simp only [← ofFractionRing_add, add_comm]
zero := 0
zero_add := by frac_tac
@@ -610,9 +610,9 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
RatFunc.liftOn f
(fun n d => if h : φ d ∈ S[X]⁰ then ofFractionRing (Localization.mk (φ n) ⟨φ d, h⟩) else 0)
fun {p q p' q'} hq hq' h => by
- dsimp only -- porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied
rw [dif_pos, dif_pos]
- congr 1 -- porting note: this was a `rw [ofFractionRing.inj_eq]` which was overkill anyway
+ congr 1 -- Porting note: this was a `rw [ofFractionRing.inj_eq]` which was overkill anyway
rw [Localization.mk_eq_mk_iff]
rotate_left
· exact hφ hq
@@ -620,14 +620,14 @@ def map [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap
refine' Localization.r_of_eq _
simpa only [map_mul] using congr_arg φ h
map_one' := by
- dsimp only -- porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied
rw [← ofFractionRing_one, ← Localization.mk_one, liftOn_ofFractionRing_mk, dif_pos]
· simpa using ofFractionRing_one
· simpa using Submonoid.one_mem _
map_mul' x y := by
- dsimp only -- porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied
cases' x with x; cases' y with y
- -- porting note: added `using Localization.rec` (`Localization.induction_on` didn't work)
+ -- Porting note: added `using Localization.rec` (`Localization.induction_on` didn't work)
induction' x using Localization.rec with p q
induction' y using Localization.rec with p' q'
· have hq : φ q ∈ S[X]⁰ := hφ q.prop
@@ -644,7 +644,7 @@ theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
(hφ : R[X]⁰ ≤ S[X]⁰.comap φ) (n : R[X]) (d : R[X]⁰) :
map φ hφ (ofFractionRing (Localization.mk n d)) =
ofFractionRing (Localization.mk (φ n) ⟨φ d, hφ d.prop⟩) := by
- -- porting note: replaced `convert` with `refine Eq.trans`
+ -- Porting note: replaced `convert` with `refine Eq.trans`
refine (liftOn_ofFractionRing_mk n _ _ _).trans ?_
rw [dif_pos]
#align ratfunc.map_apply_of_fraction_ring_mk RatFunc.map_apply_ofFractionRing_mk
@@ -652,7 +652,7 @@ theorem map_apply_ofFractionRing_mk [MonoidHomClass F R[X] S[X]] (φ : F)
theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.comap φ)
(hf : Function.Injective φ) : Function.Injective (map φ hφ) := by
rintro ⟨x⟩ ⟨y⟩ h
- -- porting note: had to hint `induction` which induction principle to use
+ -- Porting note: had to hint `induction` which induction principle to use
induction x using Localization.induction_on
induction y using Localization.induction_on
simpa only [map_apply_ofFractionRing_mk, ofFractionRing_injective.eq_iff,
@@ -673,7 +673,7 @@ def mapRingHom [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S[X]⁰.co
Localization.mk_eq_mk', IsLocalization.mk'_zero]
map_add' := by
rintro ⟨x⟩ ⟨y⟩
- -- porting note: had to hint `induction` which induction principle to use
+ -- Porting note: had to hint `induction` which induction principle to use
induction x using Localization.rec
induction y using Localization.rec
· simp only [← ofFractionRing_add, Localization.add_mk, map_add, map_mul,
@@ -702,7 +702,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
rw [div_eq_div_iff, ← map_mul, mul_comm p, h, map_mul, mul_comm] <;>
exact nonZeroDivisors.ne_zero (hφ ‹_›)
map_one' := by
- dsimp only -- porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied
rw [← ofFractionRing_one, ← Localization.mk_one, liftOn_ofFractionRing_mk]
simp only [map_one, OneMemClass.coe_one, div_one]
map_mul' x y := by
@@ -715,7 +715,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
· rfl
· rfl
map_zero' := by
- dsimp only -- porting note: force the function to be applied
+ dsimp only -- Porting note: force the function to be applied
rw [← ofFractionRing_zero, ← Localization.mk_zero (1 : R[X]⁰), liftOn_ofFractionRing_mk]
simp only [map_zero, zero_div]
#align ratfunc.lift_monoid_with_zero_hom RatFunc.liftMonoidWithZeroHom
@@ -746,7 +746,7 @@ by mapping both the numerator and denominator and quotienting them. -/
def liftRingHom (φ : R[X] →+* L) (hφ : R[X]⁰ ≤ L⁰.comap φ) : RatFunc R →+* L :=
{ liftMonoidWithZeroHom φ.toMonoidWithZeroHom hφ with
map_add' := fun x y => by
- -- porting note: used to invoke `MonoidWithZeroHom.toFun_eq_coe`
+ -- Porting note: used to invoke `MonoidWithZeroHom.toFun_eq_coe`
simp only [ZeroHom.toFun_eq_coe, MonoidWithZeroHom.toZeroHom_coe]
cases subsingleton_or_nontrivial R
· rw [Subsingleton.elim (x + y) y, Subsingleton.elim x 0, map_zero, zero_add]
@@ -786,7 +786,7 @@ variable (K)
instance instField [IsDomain K] : Field (RatFunc K) :=
{ RatFunc.instCommRing K, RatFunc.instNontrivial K with
inv := Inv.inv
- -- porting note: used to be `by frac_tac`
+ -- Porting note: used to be `by frac_tac`
inv_zero := by rw [← ofFractionRing_zero, ← ofFractionRing_inv, inv_zero]
div := (· / ·)
div_eq_mul_inv := by frac_tac
@@ -810,7 +810,7 @@ instance (R : Type*) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K) w
smul := (· • ·)
smul_def' c x := by
induction' x using RatFunc.induction_on' with p q hq
- -- porting note: the first `rw [...]` was not needed
+ -- Porting note: the first `rw [...]` was not needed
· rw [RingHom.coe_mk, MonoidHom.coe_mk, OneHom.coe_mk]
rw [mk_one', ← mk_smul, mk_def_of_ne (c • p) hq, mk_def_of_ne p hq, ←
ofFractionRing_mul, IsLocalization.mul_mk'_eq_mk'_of_mul, Algebra.smul_def]
@@ -889,7 +889,7 @@ theorem liftMonoidWithZeroHom_apply_div' {L : Type*} [CommGroupWithZero L]
theorem liftRingHom_apply_div {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
- liftMonoidWithZeroHom_apply_div _ hφ _ _ -- porting note: gave explicitly the `hφ`
+ liftMonoidWithZeroHom_apply_div _ hφ _ _ -- Porting note: gave explicitly the `hφ`
#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_div
-- Porting note: added `simpNF` form of `liftRingHom_apply_div`
@@ -897,7 +897,7 @@ theorem liftRingHom_apply_div {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K
theorem liftRingHom_apply_div' {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p) / liftRingHom φ hφ (algebraMap _ _ q) =
φ p / φ q :=
- liftMonoidWithZeroHom_apply_div' _ hφ _ _ -- porting note: gave explicitly the `hφ`
+ liftMonoidWithZeroHom_apply_div' _ hφ _ _ -- Porting note: gave explicitly the `hφ`
variable (K)
@@ -955,7 +955,7 @@ def liftAlgHom : RatFunc K →ₐ[S] L :=
theorem liftAlgHom_apply_ofFractionRing_mk (n : K[X]) (d : K[X]⁰) :
liftAlgHom φ hφ (ofFractionRing (Localization.mk n d)) = φ n / φ d :=
- liftMonoidWithZeroHom_apply_ofFractionRing_mk _ hφ _ _ -- porting note: gave explicitly the `hφ`
+ liftMonoidWithZeroHom_apply_ofFractionRing_mk _ hφ _ _ -- Porting note: gave explicitly the `hφ`
#align ratfunc.lift_alg_hom_apply_of_fraction_ring_mk RatFunc.liftAlgHom_apply_ofFractionRing_mk
theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective φ)
@@ -968,11 +968,11 @@ theorem liftAlgHom_injective (φ : K[X] →ₐ[S] L) (hφ : Function.Injective
@[simp]
theorem liftAlgHom_apply_div' (p q : K[X]) :
liftAlgHom φ hφ (algebraMap _ _ p) / liftAlgHom φ hφ (algebraMap _ _ q) = φ p / φ q :=
- liftMonoidWithZeroHom_apply_div' _ hφ _ _ -- porting note: gave explicitly the `hφ`
+ liftMonoidWithZeroHom_apply_div' _ hφ _ _ -- Porting note: gave explicitly the `hφ`
theorem liftAlgHom_apply_div (p q : K[X]) :
liftAlgHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
- liftMonoidWithZeroHom_apply_div _ hφ _ _ -- porting note: gave explicitly the `hφ`
+ liftMonoidWithZeroHom_apply_div _ hφ _ _ -- Porting note: gave explicitly the `hφ`
#align ratfunc.lift_alg_hom_apply_div RatFunc.liftAlgHom_apply_div
end LiftAlgHom
@@ -990,9 +990,9 @@ instance : IsFractionRing K[X] (RatFunc K) where
surj' := by
rintro ⟨z⟩
convert IsLocalization.surj K[X]⁰ z
- -- porting note: `ext ⟨x, y⟩` no longer necessary
+ -- Porting note: `ext ⟨x, y⟩` no longer necessary
simp only [← ofFractionRing_algebraMap, Function.comp_apply, ← ofFractionRing_mul]
- rw [ofFractionRing.injEq] -- porting note: added
+ rw [ofFractionRing.injEq] -- Porting note: added
variable {K}
@@ -1010,7 +1010,7 @@ theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : K[X] → K[X] → P) (f0 :
(H) :
(RatFunc.liftOn' (algebraMap _ (RatFunc K) p / algebraMap _ _ q)) f @H = f p q := by
rw [RatFunc.liftOn', liftOn_div _ _ _ f0]
- apply liftOn_condition_of_liftOn'_condition H -- porting note: `exact` did not work. Also,
+ apply liftOn_condition_of_liftOn'_condition H -- Porting note: `exact` did not work. Also,
-- was `@H` that still works, but is not needed.
#align ratfunc.lift_on'_div RatFunc.liftOn'_div
@@ -1025,7 +1025,7 @@ protected theorem induction_on {P : RatFunc K → Prop} (x : RatFunc K)
#align ratfunc.induction_on RatFunc.induction_on
theorem ofFractionRing_mk' (x : K[X]) (y : K[X]⁰) :
- -- porting note: I gave explicitly the argument `(FractionRing K[X])`
+ -- Porting note: I gave explicitly the argument `(FractionRing K[X])`
ofFractionRing (IsLocalization.mk' (FractionRing K[X]) x y) =
IsLocalization.mk' (RatFunc K) x y := by
rw [IsFractionRing.mk'_eq_div, IsFractionRing.mk'_eq_div, ← mk_eq_div', ← mk_eq_div]
@@ -1039,7 +1039,7 @@ theorem ofFractionRing_eq :
simp only [IsLocalization.algEquiv_apply, IsLocalization.ringEquivOfRingEquiv_apply,
Localization.mk_eq_mk'_apply, IsLocalization.map_mk', ofFractionRing_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
- -- porting note: added following `simp`. The previous one can be squeezed.
+ -- Porting note: added following `simp`. The previous one can be squeezed.
simp only [IsFractionRing.mk'_eq_div, RingHom.id_apply, Subtype.coe_eta]
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
@@ -1051,7 +1051,7 @@ theorem toFractionRing_eq :
simp only [Localization.mk_eq_mk'_apply, ofFractionRing_mk', IsLocalization.algEquiv_apply,
IsLocalization.ringEquivOfRingEquiv_apply, IsLocalization.map_mk',
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
- -- porting note: added following `simp`. The previous one can be squeezed.
+ -- Porting note: added following `simp`. The previous one can be squeezed.
simp only [IsFractionRing.mk'_eq_div, RingHom.id_apply, Subtype.coe_eta]
#align ratfunc.to_fraction_ring_eq RatFunc.toFractionRing_eq
@@ -1104,8 +1104,8 @@ def numDenom (x : RatFunc K) : K[X] × K[X] :=
(C_mul_dvd hainv).mpr (gcd_dvd_left p q)
have hdivq : Polynomial.C a.leadingCoeff⁻¹ * gcd p q ∣ q :=
(C_mul_dvd hainv).mpr (gcd_dvd_right p q)
- -- porting note: added `simp only [...]` and `rw [mul_assoc]`
- -- porting note: note the unfolding of `normalize` and `normUnit`!
+ -- Porting note: added `simp only [...]` and `rw [mul_assoc]`
+ -- Porting note: note the unfolding of `normalize` and `normUnit`!
simp only [normalize, normUnit, coe_normUnit, leadingCoeff_eq_zero, MonoidWithZeroHom.coe_mk,
ZeroHom.coe_mk, ha, dite_false, Units.val_inv_eq_inv_val, Units.val_mk0]
rw [mul_assoc]
@@ -1225,7 +1225,7 @@ theorem denom_div_dvd (p q : K[X]) : denom (algebraMap _ _ p / algebraMap _ _ q)
@[simp]
theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _ (denom x) = x := by
induction' x using RatFunc.induction_on with p q hq
- -- porting note: had to hint the type of this `have`
+ -- Porting note: had to hint the type of this `have`
have q_div_ne_zero : q / gcd p q ≠ 0 := right_div_gcd_ne_zero hq
rw [num_div p q, denom_div p hq, RingHom.map_mul, RingHom.map_mul, mul_div_mul_left,
div_eq_div_iff, ← RingHom.map_mul, ← RingHom.map_mul, mul_comm _ q, ←
@@ -1356,13 +1356,13 @@ theorem liftMonoidWithZeroHom_apply {L : Type*} [CommGroupWithZero L] (φ : K[X]
theorem liftRingHom_apply {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.denom :=
- liftMonoidWithZeroHom_apply _ hφ _ -- porting note: added explicit `hφ`
+ liftMonoidWithZeroHom_apply _ hφ _ -- Porting note: added explicit `hφ`
#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
theorem liftAlgHom_apply {L S : Type*} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
(φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftAlgHom φ hφ f = φ f.num / φ f.denom :=
- liftMonoidWithZeroHom_apply _ hφ _ -- porting note: added explicit `hφ`
+ liftMonoidWithZeroHom_apply _ hφ _ -- Porting note: added explicit `hφ`
#align ratfunc.lift_alg_hom_apply RatFunc.liftAlgHom_apply
theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y ≠ 0) :
@@ -1544,7 +1544,7 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
cases mul_eq_zero.mp this <;> contradiction
rw [div_mul_div_comm, eq_div_iff (mul_ne_zero hx hy), div_eq_mul_inv, mul_right_comm, ←
div_eq_mul_inv, div_eq_iff hxy]
- simp only [← Polynomial.eval₂_mul] -- porting note: was `repeat' rw [← Polynomial.eval₂_mul]`
+ simp only [← Polynomial.eval₂_mul] -- Porting note: was `repeat' rw [← Polynomial.eval₂_mul]`
congr 1
apply num_denom_mul
#align ratfunc.eval_mul RatFunc.eval_mul
@@ -1688,7 +1688,7 @@ theorem coe_injective : Function.Injective ((↑) : RatFunc F → LaurentSeries
liftAlgHom_injective _ (Polynomial.algebraMap_hahnSeries_injective _)
#align ratfunc.coe_injective RatFunc.coe_injective
--- porting note: removed the `norm_cast` tag:
+-- Porting note: removed the `norm_cast` tag:
-- `norm_cast: badly shaped lemma, rhs can't start with coe `↑(coeAlgHom F) f`
@[simp]
theorem coe_apply : coeAlgHom F f = f :=
@@ -1738,10 +1738,10 @@ theorem coe_div :
@[simp, norm_cast]
theorem coe_C (r : F) : ((C r : RatFunc F) : LaurentSeries F) = HahnSeries.C r := by
- rw [coe_num_denom, num_C, denom_C, Polynomial.coe_C, -- porting note: removed `coe_C`
+ rw [coe_num_denom, num_C, denom_C, Polynomial.coe_C, -- Porting note: removed `coe_C`
Polynomial.coe_one,
PowerSeries.coe_one, div_one]
- simp only [algebraMap_eq_C, ofPowerSeries_C, C_apply] -- porting note: added
+ simp only [algebraMap_eq_C, ofPowerSeries_C, C_apply] -- Porting note: added
set_option linter.uppercaseLean3 false in
#align ratfunc.coe_C RatFunc.coe_C
@@ -1755,10 +1755,10 @@ theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • (f
-- even though `single 1 1` is a bundled function application, not a "real" coercion
@[simp, nolint simpNF] -- Added `simpNF` to avoid timeout #8386
theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
- rw [coe_num_denom, num_X, denom_X, Polynomial.coe_X, -- porting note: removed `coe_C`
+ rw [coe_num_denom, num_X, denom_X, Polynomial.coe_X, -- Porting note: removed `coe_C`
Polynomial.coe_one,
PowerSeries.coe_one, div_one]
- simp only [ofPowerSeries_X] -- porting note: added
+ simp only [ofPowerSeries_X] -- Porting note: added
set_option linter.uppercaseLean3 false in
#align ratfunc.coe_X RatFunc.coe_X
@@ -1768,7 +1768,7 @@ instance : Algebra (RatFunc F) (LaurentSeries F) :=
theorem algebraMap_apply_div :
algebraMap (RatFunc F) (LaurentSeries F) (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap F[X] (LaurentSeries F) p / algebraMap _ _ q := by
- -- porting note: had to supply implicit arguments to `convert`
+ -- Porting note: had to supply implicit arguments to `convert`
convert coe_div (algebraMap F[X] (RatFunc F) p) (algebraMap F[X] (RatFunc F) q) <;>
rw [← mk_one, coe_def, coeAlgHom, mk_eq_div, liftAlgHom_apply_div, map_one, div_one,
Algebra.ofId_apply]
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -598,6 +598,7 @@ variable {K}
section LiftHom
variable {G₀ L R S F : Type*} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
+variable [FunLike F R[X] S[X]]
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `RatFunc R →* RatFunc S`,
@@ -689,7 +690,7 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
rfl
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
--- TODO: Generalize to `DFunLike` classes,
+-- TODO: Generalize to `FunLike` classes,
/-- Lift a monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
@@ -845,7 +846,8 @@ theorem algebraMap_apply {R : Type*} [CommSemiring R] [Algebra R K[X]] (x : R) :
rfl
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
-theorem map_apply_div_ne_zero {R F : Type*} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
+theorem map_apply_div_ne_zero {R F : Type*} [CommRing R] [IsDomain R]
+ [FunLike F K[X] R[X]] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap _ _ (φ p) / algebraMap _ _ (φ q) := by
@@ -855,7 +857,8 @@ theorem map_apply_div_ne_zero {R F : Type*} [CommRing R] [IsDomain R] [MonoidHom
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
@[simp]
-theorem map_apply_div {R F : Type*} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
+theorem map_apply_div {R F : Type*} [CommRing R] [IsDomain R]
+ [FunLike F K[X] R[X]] [MonoidWithZeroHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap _ _ (φ p) / algebraMap _ _ (φ q) := by
@@ -1332,12 +1335,13 @@ theorem denom_add_dvd (x y : RatFunc K) : denom (x + y) ∣ denom x * denom y :=
· exact algebraMap_ne_zero (denom_ne_zero y)
#align ratfunc.denom_add_dvd RatFunc.denom_add_dvd
-theorem map_denom_ne_zero {L F : Type*} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
- (hφ : Function.Injective φ) (f : RatFunc K) : φ f.denom ≠ 0 := fun H =>
+theorem map_denom_ne_zero {L F : Type*} [Zero L] [FunLike F K[X] L] [ZeroHomClass F K[X] L]
+ (φ : F) (hφ : Function.Injective φ) (f : RatFunc K) : φ f.denom ≠ 0 := fun H =>
(denom_ne_zero f) ((map_eq_zero_iff φ hφ).mp H)
#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
-theorem map_apply {R F : Type*} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
+theorem map_apply {R F : Type*} [CommRing R] [IsDomain R]
+ [FunLike F K[X] R[X]] [MonoidHomClass F K[X] R[X]] (φ : F)
(hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
map φ hφ f = algebraMap _ _ (φ f.num) / algebraMap _ _ (φ f.denom) := by
rw [← num_div_denom f, map_apply_div_ne_zero, num_div_denom f]
@@ -1749,7 +1753,7 @@ theorem coe_smul (r : F) : ((r • f : RatFunc F) : LaurentSeries F) = r • (f
-- Porting note: removed `norm_cast` because "badly shaped lemma, rhs can't start with coe"
-- even though `single 1 1` is a bundled function application, not a "real" coercion
-@[simp]
+@[simp, nolint simpNF] -- Added `simpNF` to avoid timeout #8386
theorem coe_X : ((X : RatFunc F) : LaurentSeries F) = single 1 1 := by
rw [coe_num_denom, num_X, denom_X, Polynomial.coe_X, -- porting note: removed `coe_C`
Polynomial.coe_one,
With multiple changes, it is a good time to check if existing set_option maxHeartbeats
and set_option synthInstance.maxHeartbeats
remain necessary. This brings the number of files with such down from 23 to 9. Most are straight deletions though I did change one proof.
@@ -689,7 +689,6 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
rfl
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
-set_option maxHeartbeats 300000 in
-- TODO: Generalize to `DFunLike` classes,
/-- Lift a monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -690,7 +690,7 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
set_option maxHeartbeats 300000 in
--- TODO: Generalize to `FunLike` classes,
+-- TODO: Generalize to `DFunLike` classes,
/-- Lift a monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
@@ -146,7 +146,7 @@ we construct a value of `P` for such elements of `RatFunc K` by setting
When `[IsDomain K]`, one can use `RatFunc.liftOn'`, which has the stronger requirement
of `∀ {p q a : K[X]} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)`.
-/
-protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ _p _q : K[X], P)
+protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : K[X] → K[X] → P)
(H : ∀ {p q p' q'} (_hq : q ∈ K[X]⁰) (_hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
P := by
refine Localization.liftOn (toFractionRing x) (fun p q => f p q) ?_
@@ -162,14 +162,14 @@ protected irreducible_def liftOn {P : Sort v} (x : RatFunc K) (f : ∀ _p _q : K
-- mul_cancel_left_coe_nonZeroDivisors.mp mul_eq)
#align ratfunc.lift_on RatFunc.liftOn
-theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀ _p _q : K[X], P)
+theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : K[X] → K[X] → P)
(H : ∀ {p q p' q'} (_hq : q ∈ K[X]⁰) (_hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q') :
RatFunc.liftOn (ofFractionRing (Localization.mk n d)) f @H = f n d := by
rw [RatFunc.liftOn]
exact Localization.liftOn_mk _ _ _ _
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
-theorem liftOn_condition_of_liftOn'_condition {P : Sort v} {f : ∀ _p _q : K[X], P}
+theorem liftOn_condition_of_liftOn'_condition {P : Sort v} {f : K[X] → K[X] → P}
(H : ∀ {p q a} (hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
(hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
calc
@@ -241,7 +241,7 @@ theorem mk_eq_mk {p q p' q' : K[X]} (hq : q ≠ 0) (hq' : q' ≠ 0) :
(IsFractionRing.injective K[X] (FractionRing K[X])).eq_iff]
#align ratfunc.mk_eq_mk RatFunc.mk_eq_mk
-theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
+theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : K[X] → K[X] → P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (_hq : q ≠ 0) (_hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (_hq : q ∈ K[X]⁰) (_hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
fun {p q p' q'} hq hq' h => H' (nonZeroDivisors.ne_zero hq) (nonZeroDivisors.ne_zero hq') h) :
@@ -260,14 +260,14 @@ for all elements of `RatFunc K` by setting `lift_on' (p / q) f _ = f p q`.
The value of `f p 0` for any `p` is never used and in principle this may be anything,
although many usages of `lift_on'` assume `f p 0 = f 0 1`.
-/
-protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : ∀ _p _q : K[X], P)
+protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : K[X] → K[X] → P)
(H : ∀ {p q a} (_hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
x.liftOn f fun {_p _q _p' _q'} hq hq' =>
liftOn_condition_of_liftOn'_condition (@H) (nonZeroDivisors.ne_zero hq)
(nonZeroDivisors.ne_zero hq')
#align ratfunc.lift_on' RatFunc.liftOn'
-theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
+theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : K[X] → K[X] → P) (f0 : ∀ p, f p 0 = f 0 1)
(H : ∀ {p q a} (_hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) :
(RatFunc.mk p q).liftOn' f @H = f p q := by
rw [RatFunc.liftOn', RatFunc.liftOn_mk _ _ _ f0]
@@ -995,7 +995,7 @@ instance : IsFractionRing K[X] (RatFunc K) where
variable {K}
@[simp]
-theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
+theorem liftOn_div {P : Sort v} (p q : K[X]) (f : K[X] → K[X] → P) (f0 : ∀ p, f p 0 = f 0 1)
(H' : ∀ {p q p' q'} (_hq : q ≠ 0) (_hq' : q' ≠ 0), q' * p = q * p' → f p q = f p' q')
(H : ∀ {p q p' q'} (_hq : q ∈ K[X]⁰) (_hq' : q' ∈ K[X]⁰), q' * p = q * p' → f p q = f p' q' :=
fun {p q p' q'} hq hq' h => H' (nonZeroDivisors.ne_zero hq) (nonZeroDivisors.ne_zero hq') h) :
@@ -1004,7 +1004,7 @@ theorem liftOn_div {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀
#align ratfunc.lift_on_div RatFunc.liftOn_div
@[simp]
-theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀ p, f p 0 = f 0 1)
+theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : K[X] → K[X] → P) (f0 : ∀ p, f p 0 = f 0 1)
(H) :
(RatFunc.liftOn' (algebraMap _ (RatFunc K) p / algebraMap _ _ q)) f @H = f p q := by
rw [RatFunc.liftOn', liftOn_div _ _ _ f0]
@@ -1284,7 +1284,7 @@ theorem num_denom_mul (x y : RatFunc K) :
#align ratfunc.num_denom_mul RatFunc.num_denom_mul
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
- num x ∣ p ↔ ∃ (q : K[X]) (_ : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q := by
+ num x ∣ p ↔ ∃ q : K[X], q ≠ 0 ∧ x = algebraMap _ _ p / algebraMap _ _ q := by
constructor
· rintro ⟨q, rfl⟩
obtain ⟨_hx, hq⟩ := mul_ne_zero_iff.mp hp
@@ -528,7 +528,7 @@ macro "smul_tac" : tactic => `(tactic|
(first
| rintro (⟨⟩ : RatFunc _)
| intro) <;>
- simp_rw [←ofFractionRing_smul] <;>
+ simp_rw [← ofFractionRing_smul] <;>
simp only [add_comm, mul_comm, zero_smul, succ_nsmul, zsmul_eq_mul, mul_add, mul_one, mul_zero,
neg_add, mul_neg,
Int.ofNat_eq_coe, Int.cast_zero, Int.cast_add, Int.cast_one,
This is the supremum of
along with some minor fixes from failures on nightly-testing as Mathlib master
is merged into it.
Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.
I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0
branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.
In particular this includes adjustments for the Lean PRs
We can get rid of all the
local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)
macros across Mathlib (and in any projects that want to write natural number powers of reals).
Changes the default behaviour of simp
to (config := {decide := false})
. This makes simp
(and consequentially norm_num
) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp
or norm_num
to decide
or rfl
, or adding (config := {decide := true})
.
This changed the behaviour of simp
so that simp [f]
will only unfold "fully applied" occurrences of f
. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true })
. We may in future add a syntax for this, e.g. simp [!f]
; please provide feedback! In the meantime, we have made the following changes:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[eqns]
to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp
and Function.flip
.This change in Lean may require further changes down the line (e.g. adding the !f
syntax, and/or upstreaming the special treatment for Function.comp
and Function.flip
, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!
Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>
@@ -689,6 +689,7 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
rfl
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
+set_option maxHeartbeats 300000 in
-- TODO: Generalize to `FunLike` classes,
/-- Lift a monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
@@ -703,7 +704,7 @@ def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.co
map_one' := by
dsimp only -- porting note: force the function to be applied
rw [← ofFractionRing_one, ← Localization.mk_one, liftOn_ofFractionRing_mk]
- simp only [map_one, Submonoid.coe_one, div_one]
+ simp only [map_one, OneMemClass.coe_one, div_one]
map_mul' x y := by
cases' x with x
cases' y with y
The other direction is a consequence of IsLocalization.map_units
.
Also do the same for LocalizationMap
and IsLocalizedModule
.
This means we have one less fact to prove when constructing an IsLocalization
(etc.) instance (thus many proofs are golfed), but once we construct it we still have access to the eq_iff_exists
lemmas (without the prime) so the API doesn't get less powerful.
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -981,10 +981,9 @@ instance : IsFractionRing K[X] (RatFunc K) where
map_units' y := by
rw [← ofFractionRing_algebraMap]
exact (toFractionRingRingEquiv K).symm.toRingHom.isUnit_map (IsLocalization.map_units _ y)
- eq_iff_exists' {x y} := by
+ exists_of_eq {x y} := by
rw [← ofFractionRing_algebraMap, ← ofFractionRing_algebraMap]
- exact (toFractionRingRingEquiv K).symm.injective.eq_iff.trans
- (IsLocalization.eq_iff_exists _ _)
+ exact fun h ↦ IsLocalization.exists_of_eq ((toFractionRingRingEquiv K).symm.injective h)
surj' := by
rintro ⟨z⟩
convert IsLocalization.surj K[X]⁰ z
@@ -863,7 +863,6 @@ theorem map_apply_div {R F : Type*} [CommRing R] [IsDomain R] [MonoidWithZeroHom
· have : (0 : RatFunc K) = algebraMap K[X] _ 0 / algebraMap K[X] _ 1 := by simp
rw [map_zero, map_zero, map_zero, div_zero, div_zero, this, map_apply_div_ne_zero, map_one,
map_one, div_one, map_zero, map_zero]
- simp only [map_zero, map_one, div_one] -- porting note: this `simp` was not needed
exact one_ne_zero
exact map_apply_div_ne_zero _ _ _ _ hq
#align ratfunc.map_apply_div RatFunc.map_apply_div
@@ -1226,7 +1225,6 @@ theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _
induction' x using RatFunc.induction_on with p q hq
-- porting note: had to hint the type of this `have`
have q_div_ne_zero : q / gcd p q ≠ 0 := right_div_gcd_ne_zero hq
- dsimp only
rw [num_div p q, denom_div p hq, RingHom.map_mul, RingHom.map_mul, mul_div_mul_left,
div_eq_div_iff, ← RingHom.map_mul, ← RingHom.map_mul, mul_comm _ q, ←
EuclideanDomain.mul_div_assoc, ← EuclideanDomain.mul_div_assoc, mul_comm]
@@ -1286,7 +1284,7 @@ theorem num_denom_mul (x y : RatFunc K) :
#align ratfunc.num_denom_mul RatFunc.num_denom_mul
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
- num x ∣ p ↔ ∃ (q : K[X]) (hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q := by
+ num x ∣ p ↔ ∃ (q : K[X]) (_ : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q := by
constructor
· rintro ⟨q, rfl⟩
obtain ⟨_hx, hq⟩ := mul_ne_zero_iff.mp hp
@@ -281,7 +281,7 @@ See also `induction_on`, which is a recursion principle defined in terms of `alg
-/
@[elab_as_elim]
protected theorem induction_on' {P : RatFunc K → Prop} :
- ∀ (x : RatFunc K) (_pq : ∀ (p q : K[X]) (_ : q ≠ 0), P (RatFunc.mk p q)), P x
+ ∀ (x : RatFunc K) (_pq : ∀ (p q : K[X]) (_ : q ≠ 0), P (RatFunc.mk p q)), P x
| ⟨x⟩, f =>
Localization.induction_on x fun ⟨p, q⟩ => by
simpa only [mk_coe_def, Localization.mk_eq_mk'] using
This removes redundant field values of the form add := add
for smaller terms and less unfolding during unification.
A list of all files containing a structure instance of the form { a1, ... with x1 := val, ... }
where some xi
is a field of some aj
was generated by modifying the structure instance elaboration algorithm to print such overlaps to stdout in a custom toolchain.
Using that toolchain, I went through each file on the list and attempted to remove algebraic fields that overlapped and were redundant, eg add := add
and not toFun
(though some other ones did creep in). If things broke (which was the case in a couple of cases), I did not push further and reverted.
It is possible that pushing harder and trying to remove all redundant overlaps will yield further improvements.
@@ -581,11 +581,8 @@ def instAddCommGroup : AddCommGroup (RatFunc K) where
instance instCommRing : CommRing (RatFunc K) :=
{ instCommMonoid K, instAddCommGroup K with
- add := (· + ·)
zero := 0
- neg := Neg.neg
sub := Sub.sub
- mul := (· * ·)
zero_mul := by frac_tac
mul_zero := by frac_tac
left_distrib := by frac_tac
@@ -19,7 +19,7 @@ and shows it is the field of fractions of `K[X]`.
## Main definitions
Working with rational functions as polynomials:
- - `RatFunc.field` provides a field structure
+ - `RatFunc.instField` provides a field structure
- `RatFunc.C` is the constant polynomial
- `RatFunc.X` is the indeterminate
- `RatFunc.eval` evaluates a rational function given a value for the indeterminate
@@ -104,7 +104,7 @@ variable (K : Type u)
The inclusion of polynomials into `RatFunc` is `algebraMap K[X] (RatFunc K)`,
the maps between `RatFunc K` and another field of fractions of `K[X]`,
-especially `FractionRing K[X]`, are given by `is_localization.algebra_equiv`.
+especially `FractionRing K[X]`, are given by `IsLocalization.algEquiv`.
-/
structure RatFunc [CommRing K] : Type u where ofFractionRing ::
toFractionRing : FractionRing K[X]
@@ -141,7 +141,7 @@ both `q` and `q'` are not zero divisors, stated as `q ∉ K[X]⁰`, `q' ∉ K[X]
If considering `K` as an integral domain, this is the same as saying that
we construct a value of `P` for such elements of `RatFunc K` by setting
-`lift_on (p / q) f _ = f p q`.
+`liftOn (p / q) f _ = f p q`.
When `[IsDomain K]`, one can use `RatFunc.liftOn'`, which has the stronger requirement
of `∀ {p q a : K[X]} (hq : q ≠ 0) (ha : a ≠ 0), f (a * p) (a * q) = f p q)`.
@@ -169,14 +169,14 @@ theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀
exact Localization.liftOn_mk _ _ _ _
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
-theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ _p _q : K[X], P}
+theorem liftOn_condition_of_liftOn'_condition {P : Sort v} {f : ∀ _p _q : K[X], P}
(H : ∀ {p q a} (hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
(hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
calc
f p q = f (q' * p) (q' * q) := (H hq hq').symm
_ = f (q * p') (q * q') := by rw [h, mul_comm q']
_ = f p' q' := H hq' hq
-#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
+#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.liftOn_condition_of_liftOn'_condition
section IsDomain
@@ -222,9 +222,9 @@ theorem mk_def_of_ne (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
theorem mk_eq_localization_mk (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
RatFunc.mk p q =
- ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) :=
- -- porting note: the original proof, did not need `<;> exact hq`
- by rw [mk_def_of_ne, Localization.mk_eq_mk'] <;> exact hq
+ ofFractionRing (Localization.mk p ⟨q, mem_nonZeroDivisors_iff_ne_zero.mpr hq⟩) := by
+ -- porting note: the original proof, did not need to pass `hq`
+ rw [mk_def_of_ne _ hq, Localization.mk_eq_mk']
#align ratfunc.mk_eq_localization_mk RatFunc.mk_eq_localization_mk
-- porting note: replaced `algebraMap _ _` with `algebraMap K[X] (FractionRing K[X])`
@@ -263,7 +263,7 @@ although many usages of `lift_on'` assume `f p 0 = f 0 1`.
protected irreducible_def liftOn' {P : Sort v} (x : RatFunc K) (f : ∀ _p _q : K[X], P)
(H : ∀ {p q a} (_hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) : P :=
x.liftOn f fun {_p _q _p' _q'} hq hq' =>
- lift_on_condition_of_lift_on'_condition (@H) (nonZeroDivisors.ne_zero hq)
+ liftOn_condition_of_liftOn'_condition (@H) (nonZeroDivisors.ne_zero hq)
(nonZeroDivisors.ne_zero hq')
#align ratfunc.lift_on' RatFunc.liftOn'
@@ -271,15 +271,15 @@ theorem liftOn'_mk {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀
(H : ∀ {p q a} (_hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) :
(RatFunc.mk p q).liftOn' f @H = f p q := by
rw [RatFunc.liftOn', RatFunc.liftOn_mk _ _ _ f0]
- apply lift_on_condition_of_lift_on'_condition H
+ apply liftOn_condition_of_liftOn'_condition H
#align ratfunc.lift_on'_mk RatFunc.liftOn'_mk
-/- ./././Mathport/Syntax/Translate/Command.lean:322:38: unsupported irreducible non-definition -/
/-- Induction principle for `RatFunc K`: if `f p q : P (RatFunc.mk p q)` for all `p q`,
then `P` holds on all elements of `RatFunc K`.
See also `induction_on`, which is a recursion principle defined in terms of `algebraMap`.
-/
+@[elab_as_elim]
protected theorem induction_on' {P : RatFunc K → Prop} :
∀ (x : RatFunc K) (_pq : ∀ (p q : K[X]) (_ : q ≠ 0), P (RatFunc.mk p q)), P x
| ⟨x⟩, f =>
@@ -414,7 +414,7 @@ theorem ofFractionRing_inv (p : FractionRing K[X]) :
#align ratfunc.of_fraction_ring_inv RatFunc.ofFractionRing_inv
-- Auxiliary lemma for the `Field` instance
-theorem mul_inv_cancel : ∀ {p : RatFunc K} (_hp : p ≠ 0), p * p⁻¹ = 1
+theorem mul_inv_cancel : ∀ {p : RatFunc K}, p ≠ 0 → p * p⁻¹ = 1
| ⟨p⟩, h => by
have : p ≠ 0 := fun hp => h <| by rw [hp, ofFractionRing_zero]
simpa only [← ofFractionRing_inv, ← ofFractionRing_mul, ← ofFractionRing_one,
@@ -455,8 +455,8 @@ theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x
cases' x with x
-- Porting note: had to specify the induction principle manually
induction x using Localization.induction_on
- · rw [← ofFractionRing_smul, ← ofFractionRing_smul, Localization.smul_mk,
- Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_C_mul]
+ rw [← ofFractionRing_smul, ← ofFractionRing_smul, Localization.smul_mk,
+ Localization.smul_mk, smul_eq_mul, Polynomial.smul_eq_C_mul]
set_option linter.uppercaseLean3 false in
#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smul
@@ -475,10 +475,8 @@ theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk
ofFractionRing_smul]
#align ratfunc.mk_smul RatFunc.mk_smul
--- porting note: was term-mode. `exact` instead of `apply` does not work.
-instance : IsScalarTower R K[X] (RatFunc K) := ⟨by
- intros c p q
- apply q.induction_on' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
+instance : IsScalarTower R K[X] (RatFunc K) :=
+ ⟨fun c p q => q.induction_on' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
end IsDomain
@@ -659,9 +657,9 @@ theorem map_injective [MonoidHomClass F R[X] S[X]] (φ : F) (hφ : R[X]⁰ ≤ S
-- porting note: had to hint `induction` which induction principle to use
induction x using Localization.induction_on
induction y using Localization.induction_on
- · simpa only [map_apply_ofFractionRing_mk, ofFractionRing_injective.eq_iff,
- Localization.mk_eq_mk_iff, Localization.r_iff_exists, mul_cancel_left_coe_nonZeroDivisors,
- exists_const, ← map_mul, hf.eq_iff] using h
+ simpa only [map_apply_ofFractionRing_mk, ofFractionRing_injective.eq_iff,
+ Localization.mk_eq_mk_iff, Localization.r_iff_exists, mul_cancel_left_coe_nonZeroDivisors,
+ exists_const, ← map_mul, hf.eq_iff] using h
#align ratfunc.map_injective RatFunc.map_injective
/-- Lift a ring homomorphism that maps polynomials `φ : R[X] →+* S[X]`
@@ -787,7 +785,7 @@ end LiftHom
variable (K)
-instance [IsDomain K] : Field (RatFunc K) :=
+instance instField [IsDomain K] : Field (RatFunc K) :=
{ RatFunc.instCommRing K, RatFunc.instNontrivial K with
inv := Inv.inv
-- porting note: used to be `by frac_tac`
@@ -840,8 +838,8 @@ theorem mk_eq_div (p q : K[X]) : RatFunc.mk p q = algebraMap _ _ p / algebraMap
theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X] K[X]] (c : R)
(p q : K[X]) :
algebraMap _ (RatFunc K) (c • p) / algebraMap _ _ q =
- c • (algebraMap _ _ p / algebraMap _ _ q) :=
- by rw [← mk_eq_div, mk_smul, mk_eq_div]
+ c • (algebraMap _ _ p / algebraMap _ _ q) := by
+ rw [← mk_eq_div, mk_smul, mk_eq_div]
#align ratfunc.div_smul RatFunc.div_smul
theorem algebraMap_apply {R : Type*} [CommSemiring R] [Algebra R K[X]] (x : R) :
@@ -1014,7 +1012,7 @@ theorem liftOn'_div {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 :
(H) :
(RatFunc.liftOn' (algebraMap _ (RatFunc K) p / algebraMap _ _ q)) f @H = f p q := by
rw [RatFunc.liftOn', liftOn_div _ _ _ f0]
- apply lift_on_condition_of_lift_on'_condition H -- porting note: `exact` did not work. Also,
+ apply liftOn_condition_of_liftOn'_condition H -- porting note: `exact` did not work. Also,
-- was `@H` that still works, but is not needed.
#align ratfunc.lift_on'_div RatFunc.liftOn'_div
@@ -1045,7 +1043,6 @@ theorem ofFractionRing_eq :
RingEquiv.coe_toRingHom, RingEquiv.refl_apply, SetLike.eta]
-- porting note: added following `simp`. The previous one can be squeezed.
simp only [IsFractionRing.mk'_eq_div, RingHom.id_apply, Subtype.coe_eta]
-
#align ratfunc.of_fraction_ring_eq RatFunc.ofFractionRing_eq
@[simp]
@@ -1188,15 +1185,15 @@ def denom (x : RatFunc K) : K[X] :=
@[simp]
theorem denom_div (p : K[X]) {q : K[X]} (hq : q ≠ 0) :
denom (algebraMap _ _ p / algebraMap _ _ q) =
- Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) :=
- by rw [denom, numDenom_div _ hq]
+ Polynomial.C (q / gcd p q).leadingCoeff⁻¹ * (q / gcd p q) := by
+ rw [denom, numDenom_div _ hq]
#align ratfunc.denom_div RatFunc.denom_div
theorem monic_denom (x : RatFunc K) : (denom x).Monic := by
induction x using RatFunc.induction_on with
- | f p q hq =>
- rw [denom_div p hq, mul_comm]
- exact Polynomial.monic_mul_leadingCoeff_inv (right_div_gcd_ne_zero hq)
+ | f p q hq =>
+ rw [denom_div p hq, mul_comm]
+ exact Polynomial.monic_mul_leadingCoeff_inv (right_div_gcd_ne_zero hq)
#align ratfunc.monic_denom RatFunc.monic_denom
theorem denom_ne_zero (x : RatFunc K) : denom x ≠ 0 :=
@@ -1564,9 +1561,9 @@ open Polynomial
variable [Field K]
-/-- `int_degree x` is the degree of the rational function `x`, defined as the difference between
-the `nat_degree` of its numerator and the `nat_degree` of its denominator. In particular,
-`int_degree 0 = 0`. -/
+/-- `intDegree x` is the degree of the rational function `x`, defined as the difference between
+the `natDegree` of its numerator and the `natDegree` of its denominator. In particular,
+`intDegree 0 = 0`. -/
def intDegree (x : RatFunc K) : ℤ :=
natDegree x.num - natDegree x.denom
#align ratfunc.int_degree RatFunc.intDegree
@@ -1643,7 +1640,7 @@ theorem natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree {x : R
theorem intDegree_add_le {x y : RatFunc K} (hy : y ≠ 0) (hxy : x + y ≠ 0) :
intDegree (x + y) ≤ max (intDegree x) (intDegree y) := by
by_cases hx : x = 0
- · simp [hx] at hxy
+ · simp only [hx, zero_add, ne_eq] at hxy
simp [hx, hxy]
rw [intDegree_add hxy, ←
natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree hx y.denom_ne_zero,
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -1374,7 +1374,7 @@ theorem num_mul_denom_add_denom_mul_num_ne_zero {x y : RatFunc K} (hxy : x + y
x.num * y.denom + x.denom * y.num ≠ 0 := by
intro h_zero
have h := num_denom_add x y
- rw [h_zero, MulZeroClass.zero_mul] at h
+ rw [h_zero, zero_mul] at h
exact (mul_ne_zero (num_ne_zero hxy) (mul_ne_zero x.denom_ne_zero y.denom_ne_zero)) h
#align ratfunc.num_mul_denom_add_denom_mul_num_ne_zero RatFunc.num_mul_denom_add_denom_mul_num_ne_zero
The major change here is adapting to simp
failing if it makes no progress.
The vast majority of the redundant simp
s found due to this change were extracted to #6632.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -517,7 +517,7 @@ section TacticInterlude
-- porting note: reimplemented the `frac_tac` and `smul_tac` as close to the originals as I could
/-- Solve equations for `RatFunc K` by working in `FractionRing K[X]`. -/
macro "frac_tac" : tactic => `(tactic| repeat (rintro (⟨⟩ : RatFunc _)) <;>
- simp only [← ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_sub,
+ try simp only [← ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_sub,
← ofFractionRing_neg, ← ofFractionRing_one, ← ofFractionRing_mul, ← ofFractionRing_div,
← ofFractionRing_inv,
add_assoc, zero_add, add_zero, mul_assoc, mul_zero, mul_one, mul_add, inv_zero,
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -426,7 +426,7 @@ end IsDomain
section SMul
-variable {R : Type _}
+variable {R : Type*}
/-- Scalar multiplication of rational functions. -/
protected irreducible_def smul [SMul R (FractionRing K[X])] : R → RatFunc K → RatFunc K
@@ -602,7 +602,7 @@ variable {K}
section LiftHom
-variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
+variable {G₀ L R S F : Type*} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
/-- Lift a monoid homomorphism that maps polynomials `φ : R[X] →* S[X]`
to a `RatFunc R →* RatFunc S`,
@@ -805,7 +805,7 @@ section IsDomain
variable [IsDomain K]
-instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K) where
+instance (R : Type*) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K) where
toFun x := RatFunc.mk (algebraMap _ _ x) 1
map_add' x y := by simp only [mk_one', RingHom.map_add, ofFractionRing_add]
map_mul' x y := by simp only [mk_one', RingHom.map_mul, ofFractionRing_mul]
@@ -844,13 +844,13 @@ theorem div_smul {R} [Monoid R] [DistribMulAction R K[X]] [IsScalarTower R K[X]
by rw [← mk_eq_div, mk_smul, mk_eq_div]
#align ratfunc.div_smul RatFunc.div_smul
-theorem algebraMap_apply {R : Type _} [CommSemiring R] [Algebra R K[X]] (x : R) :
+theorem algebraMap_apply {R : Type*} [CommSemiring R] [Algebra R K[X]] (x : R) :
algebraMap R (RatFunc K) x = algebraMap _ _ (algebraMap R K[X] x) / algebraMap K[X] _ 1 := by
rw [← mk_eq_div]
rfl
#align ratfunc.algebra_map_apply RatFunc.algebraMap_apply
-theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
+theorem map_apply_div_ne_zero {R F : Type*} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) (hq : q ≠ 0) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap _ _ (φ p) / algebraMap _ _ (φ q) := by
@@ -860,7 +860,7 @@ theorem map_apply_div_ne_zero {R F : Type _} [CommRing R] [IsDomain R] [MonoidHo
#align ratfunc.map_apply_div_ne_zero RatFunc.map_apply_div_ne_zero
@[simp]
-theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
+theorem map_apply_div {R F : Type*} [CommRing R] [IsDomain R] [MonoidWithZeroHomClass F K[X] R[X]]
(φ : F) (hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (p q : K[X]) :
map φ hφ (algebraMap _ _ p / algebraMap _ _ q) =
algebraMap _ _ (φ p) / algebraMap _ _ (φ q) := by
@@ -873,7 +873,7 @@ theorem map_apply_div {R F : Type _} [CommRing R] [IsDomain R] [MonoidWithZeroHo
exact map_apply_div_ne_zero _ _ _ _ hq
#align ratfunc.map_apply_div RatFunc.map_apply_div
-theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
+theorem liftMonoidWithZeroHom_apply_div {L : Type*} [CommGroupWithZero L]
(φ : MonoidWithZeroHom K[X] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (p q : K[X]) :
liftMonoidWithZeroHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q := by
rcases eq_or_ne q 0 with (rfl | hq)
@@ -884,20 +884,20 @@ theorem liftMonoidWithZeroHom_apply_div {L : Type _} [CommGroupWithZero L]
-- Porting note: added `simpNF` form of `liftMonoidWithZeroHom_apply_div`
@[simp]
-theorem liftMonoidWithZeroHom_apply_div' {L : Type _} [CommGroupWithZero L]
+theorem liftMonoidWithZeroHom_apply_div' {L : Type*} [CommGroupWithZero L]
(φ : MonoidWithZeroHom K[X] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (p q : K[X]) :
liftMonoidWithZeroHom φ hφ (algebraMap _ _ p) / liftMonoidWithZeroHom φ hφ (algebraMap _ _ q) =
φ p / φ q :=
by rw [← map_div₀, liftMonoidWithZeroHom_apply_div]
-theorem liftRingHom_apply_div {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
+theorem liftRingHom_apply_div {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p / algebraMap _ _ q) = φ p / φ q :=
liftMonoidWithZeroHom_apply_div _ hφ _ _ -- porting note: gave explicitly the `hφ`
#align ratfunc.lift_ring_hom_apply_div RatFunc.liftRingHom_apply_div
-- Porting note: added `simpNF` form of `liftRingHom_apply_div`
@[simp]
-theorem liftRingHom_apply_div' {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
+theorem liftRingHom_apply_div' {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(p q : K[X]) : liftRingHom φ hφ (algebraMap _ _ p) / liftRingHom φ hφ (algebraMap _ _ q) =
φ p / φ q :=
liftMonoidWithZeroHom_apply_div' _ hφ _ _ -- porting note: gave explicitly the `hφ`
@@ -928,7 +928,7 @@ theorem algebraMap_ne_zero {x : K[X]} (hx : x ≠ 0) : algebraMap K[X] (RatFunc
section LiftAlgHom
-variable {L R S : Type _} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [Algebra S K[X]]
+variable {L R S : Type*} [Field L] [CommRing R] [IsDomain R] [CommSemiring S] [Algebra S K[X]]
[Algebra S L] [Algebra S R[X]] (φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
/-- Lift an algebra homomorphism that maps polynomials `φ : K[X] →ₐ[S] R[X]`
@@ -1341,30 +1341,30 @@ theorem denom_add_dvd (x y : RatFunc K) : denom (x + y) ∣ denom x * denom y :=
· exact algebraMap_ne_zero (denom_ne_zero y)
#align ratfunc.denom_add_dvd RatFunc.denom_add_dvd
-theorem map_denom_ne_zero {L F : Type _} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
+theorem map_denom_ne_zero {L F : Type*} [Zero L] [ZeroHomClass F K[X] L] (φ : F)
(hφ : Function.Injective φ) (f : RatFunc K) : φ f.denom ≠ 0 := fun H =>
(denom_ne_zero f) ((map_eq_zero_iff φ hφ).mp H)
#align ratfunc.map_denom_ne_zero RatFunc.map_denom_ne_zero
-theorem map_apply {R F : Type _} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
+theorem map_apply {R F : Type*} [CommRing R] [IsDomain R] [MonoidHomClass F K[X] R[X]] (φ : F)
(hφ : K[X]⁰ ≤ R[X]⁰.comap φ) (f : RatFunc K) :
map φ hφ f = algebraMap _ _ (φ f.num) / algebraMap _ _ (φ f.denom) := by
rw [← num_div_denom f, map_apply_div_ne_zero, num_div_denom f]
exact denom_ne_zero _
#align ratfunc.map_apply RatFunc.map_apply
-theorem liftMonoidWithZeroHom_apply {L : Type _} [CommGroupWithZero L] (φ : K[X] →*₀ L)
+theorem liftMonoidWithZeroHom_apply {L : Type*} [CommGroupWithZero L] (φ : K[X] →*₀ L)
(hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftMonoidWithZeroHom φ hφ f = φ f.num / φ f.denom :=
by rw [← num_div_denom f, liftMonoidWithZeroHom_apply_div, num_div_denom]
#align ratfunc.lift_monoid_with_zero_hom_apply RatFunc.liftMonoidWithZeroHom_apply
-theorem liftRingHom_apply {L : Type _} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
+theorem liftRingHom_apply {L : Type*} [Field L] (φ : K[X] →+* L) (hφ : K[X]⁰ ≤ L⁰.comap φ)
(f : RatFunc K) : liftRingHom φ hφ f = φ f.num / φ f.denom :=
liftMonoidWithZeroHom_apply _ hφ _ -- porting note: added explicit `hφ`
#align ratfunc.lift_ring_hom_apply RatFunc.liftRingHom_apply
-theorem liftAlgHom_apply {L S : Type _} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
+theorem liftAlgHom_apply {L S : Type*} [Field L] [CommSemiring S] [Algebra S K[X]] [Algebra S L]
(φ : K[X] →ₐ[S] L) (hφ : K[X]⁰ ≤ L⁰.comap φ) (f : RatFunc K) :
liftAlgHom φ hφ f = φ f.num / φ f.denom :=
liftMonoidWithZeroHom_apply _ hφ _ -- porting note: added explicit `hφ`
@@ -1464,7 +1464,7 @@ theorem X_ne_zero : (RatFunc.X : RatFunc K) ≠ 0 :=
set_option linter.uppercaseLean3 false in
#align ratfunc.X_ne_zero RatFunc.X_ne_zero
-variable {L : Type _} [Field L]
+variable {L : Type*} [Field L]
/-- Evaluate a rational function `p` given a ring hom `f` from the scalar field
to the target and a value `x` for the variable in the target.
@@ -1508,7 +1508,7 @@ theorem eval_one : eval f a 1 = 1 := by simp [eval]
#align ratfunc.eval_one RatFunc.eval_one
@[simp]
-theorem eval_algebraMap {S : Type _} [CommSemiring S] [Algebra S K[X]] (p : S) :
+theorem eval_algebraMap {S : Type*} [CommSemiring S] [Algebra S K[X]] (p : S) :
eval f a (algebraMap _ _ p) = (algebraMap _ K[X] p).eval₂ f a := by
simp [eval, IsScalarTower.algebraMap_apply S K[X] (RatFunc K)]
#align ratfunc.eval_algebra_map RatFunc.eval_algebraMap
This PR lowers the instance priority of inheritance going to cancellative structures, specifically those matching the regular expression (Add)?(Left|Right)?Cancel(Comm)?(Monoid|Semigroup)(WithZero)?
.
Most of these cancellative structures either derive from group structures or from (integral) domain structures (including fields). Thus we should be going through the group and semiring hierarchy before going through the cancellative hierarchy. In particular, IsDomain
is a mixin depending on Semiring
so trying to synthesize an IsDomain
instance to satisfy Monoid
before even trying Semiring
makes no sense.
We came across this issue when adding an extra way to find an IsDomain
instance, because this slows down the failing cancellative search path enough to cause timeouts.
Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Why.20is.20.60simpNF.60.20complaining.20here.3F
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -197,7 +197,7 @@ theorem mk_eq_div' (p q : K[X]) :
RatFunc.mk p q = ofFractionRing (algebraMap _ _ p / algebraMap _ _ q) := by rw [RatFunc.mk]
#align ratfunc.mk_eq_div' RatFunc.mk_eq_div'
-theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing 0 := by
+theorem mk_zero (p : K[X]) : RatFunc.mk p 0 = ofFractionRing (0 : FractionRing K[X]) := by
rw [mk_eq_div', RingHom.map_zero, div_zero]
#align ratfunc.mk_zero RatFunc.mk_zero
@@ -2,17 +2,14 @@
Copyright (c) 2021 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.EuclideanDomain
import Mathlib.RingTheory.LaurentSeries
import Mathlib.RingTheory.Localization.FractionRing
import Mathlib.RingTheory.Polynomial.Content
+#align_import field_theory.ratfunc from "leanprover-community/mathlib"@"bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6"
+
/-!
# The field of rational functions
@@ -400,7 +400,7 @@ instance : Div (RatFunc K) :=
-- that does not close the goal
theorem ofFractionRing_div (p q : FractionRing K[X]) :
ofFractionRing (p / q) = ofFractionRing p / ofFractionRing q := by
- simp only [Div.div, HDiv.hDiv, RatFunc.div]
+ simp only [Div.div, HDiv.hDiv, RatFunc.div]
#align ratfunc.of_fraction_ring_div RatFunc.ofFractionRing_div
/-- Multiplicative inverse of a rational function. -/
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -253,8 +253,7 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀
· subst hq
simp only [mk_zero, f0, ← Localization.mk_zero 1, Localization.liftOn_mk,
liftOn_ofFractionRing_mk, Submonoid.coe_one]
- ·
- simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, liftOn_ofFractionRing_mk]
+ · simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, liftOn_ofFractionRing_mk]
#align ratfunc.lift_on_mk RatFunc.liftOn_mk
/-- Non-dependent recursion principle for `RatFunc K`: if `f p q : P` for all `p q`,
@@ -76,11 +76,11 @@ We define the degree of a rational function, with values in `ℤ`:
To provide good API encapsulation and speed up unification problems,
`RatFunc` is defined as a structure, and all operations are `@[irreducible] def`s
-We need a couple of maps to set up the `field` and `IsFractionRing` structure,
-namely `RatFunc.of_fraction_ring`, `RatFunc.to_fraction_ring`, `RatFunc.mk` and
-`RatFunc.to_fraction_ring_ring_equiv`.
-All these maps get `simp`ed to bundled morphisms like `algebra_map K[X] (RatFunc K)`
-and `is_localization.alg_equiv`.
+We need a couple of maps to set up the `Field` and `IsFractionRing` structure,
+namely `RatFunc.ofFractionRing`, `RatFunc.toFractionRing`, `RatFunc.mk` and
+`RatFunc.toFractionRingRingEquiv`.
+All these maps get `simp`ed to bundled morphisms like `algebraMap K[X] (RatFunc K)`
+and `IsLocalization.algEquiv`.
There are separate lifts and maps of homomorphisms, to provide routes of lifting even when
the codomain is not a field or even an integral domain.
Match https://github.com/leanprover-community/mathlib/pull/18652
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit 67237461d7cbf410706a6a06f4d40cbb594c32dc
+! leanprover-community/mathlib commit bf9bbbcf0c1c1ead18280b0d010e417b10abb1b6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -1248,6 +1248,14 @@ theorem num_div_denom (x : RatFunc K) : algebraMap _ _ (num x) / algebraMap _ _
exact inv_ne_zero (Polynomial.leadingCoeff_ne_zero.mpr q_div_ne_zero)
#align ratfunc.num_div_denom RatFunc.num_div_denom
+theorem isCoprime_num_denom (x : RatFunc K) : IsCoprime x.num x.denom := by
+ induction' x using RatFunc.induction_on with p q hq
+ rw [num_div, denom_div _ hq]
+ exact (isCoprime_mul_unit_left
+ ((leadingCoeff_ne_zero.2 <| right_div_gcd_ne_zero hq).isUnit.inv.map C) _ _).2
+ (isCoprime_div_gcd_div_gcd hq)
+#align ratfunc.is_coprime_num_denom RatFunc.isCoprime_num_denom
+
@[simp]
theorem num_eq_zero_iff {x : RatFunc K} : num x = 0 ↔ x = 0 :=
⟨fun h => by rw [← num_div_denom x, h, RingHom.map_zero, zero_div], fun h => h.symm ▸ num_zero⟩
@@ -699,7 +699,7 @@ theorem coe_mapRingHom_eq_coe_map [RingHomClass F R[X] S[X]] (φ : F) (hφ : R[X
#align ratfunc.coe_map_ring_hom_eq_coe_map RatFunc.coe_mapRingHom_eq_coe_map
-- TODO: Generalize to `FunLike` classes,
-/-- Lift an monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
+/-- Lift a monoid with zero homomorphism `R[X] →*₀ G₀` to a `RatFunc R →*₀ G₀`
on the condition that `φ` maps non zero divisors to non zero divisors,
by mapping both the numerator and denominator and quotienting them. -/
def liftMonoidWithZeroHom (φ : R[X] →*₀ G₀) (hφ : R[X]⁰ ≤ G₀⁰.comap φ) : RatFunc R →*₀ G₀ where
@@ -1288,7 +1288,7 @@ theorem num_denom_mul (x y : RatFunc K) :
#align ratfunc.num_denom_mul RatFunc.num_denom_mul
theorem num_dvd {x : RatFunc K} {p : K[X]} (hp : p ≠ 0) :
- num x ∣ p ↔ ∃ (q : K[X])(hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q := by
+ num x ∣ p ↔ ∃ (q : K[X]) (hq : q ≠ 0), x = algebraMap _ _ p / algebraMap _ _ q := by
constructor
· rintro ⟨q, rfl⟩
obtain ⟨_hx, hq⟩ := mul_ne_zero_iff.mp hp
This PR re-ports FieldTheory/RatFunc
, now that the mathlib3 version uses section
s, after PR[#19133](https://github.com/leanprover-community/mathlib/pull/19133).
This closes [#4513](https://github.com/leanprover-community/mathlib4/issues/4513) and closes #4373.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen
! This file was ported from Lean 3 source module field_theory.ratfunc
-! leanprover-community/mathlib commit ec80bb1545ee17237ac0961a91bb2072780643c9
+! leanprover-community/mathlib commit 67237461d7cbf410706a6a06f4d40cbb594c32dc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -22,14 +22,14 @@ and shows it is the field of fractions of `K[X]`.
## Main definitions
Working with rational functions as polynomials:
- - `ratfunc.field` provides a field structure
+ - `RatFunc.field` provides a field structure
- `RatFunc.C` is the constant polynomial
- `RatFunc.X` is the indeterminate
- `RatFunc.eval` evaluates a rational function given a value for the indeterminate
You can use `IsFractionRing` API to treat `RatFunc` as the field of fractions of polynomials:
* `algebraMap K[X] (RatFunc K)` maps polynomials to rational functions
- * `is_fraction_ring.alg_equiv` maps other fields of fractions of `K[X]` to `RatFunc K`,
- in particular:
+ * `IsFractionRing.algEquiv` maps other fields of fractions of `K[X]` to `RatFunc K`,
+in particular:
* `FractionRing.algEquiv K[X] (RatFunc K)` maps the generic field of
fraction construction to `RatFunc K`. Combine this with `AlgEquiv.restrictScalars` to change
the `FractionRing K[X] ≃ₐ[K[X]] RatFunc K` to
@@ -67,20 +67,20 @@ We also have a set of recursion and induction principles:
rational functions
We define the degree of a rational function, with values in `ℤ`:
- - `int_degree` is the degree of a rational function, defined as the difference between the
- `nat_degree` of its numerator and the `nat_degree` of its denominator. In particular,
- `int_degree 0 = 0`.
+ - `intDegree` is the degree of a rational function, defined as the difference between the
+ `natDegree` of its numerator and the `natDegree` of its denominator. In particular,
+ `intDegree 0 = 0`.
## Implementation notes
To provide good API encapsulation and speed up unification problems,
-`RatFunc` is defined as a structure, and all operations are `@[Irreducible] def`s
+`RatFunc` is defined as a structure, and all operations are `@[irreducible] def`s
-We need a couple of maps to set up the `Field` and `IsFractionRing` structure,
-namely `ratfunc.ofFractionRing`, `RatFunc.toFractionRing`, `RatFunc.mk` and
-`RatFunc.toFractionRingRingEquiv`.
-All these maps get `simp`ed to bundled morphisms like `algebraMap K[X] (RatFunc K)`
-and `IsLocalization.algEquiv`.
+We need a couple of maps to set up the `field` and `IsFractionRing` structure,
+namely `RatFunc.of_fraction_ring`, `RatFunc.to_fraction_ring`, `RatFunc.mk` and
+`RatFunc.to_fraction_ring_ring_equiv`.
+All these maps get `simp`ed to bundled morphisms like `algebra_map K[X] (RatFunc K)`
+and `is_localization.alg_equiv`.
There are separate lifts and maps of homomorphisms, to provide routes of lifting even when
the codomain is not a field or even an integral domain.
@@ -93,41 +93,40 @@ the codomain is not a field or even an integral domain.
-/
-
noncomputable section
-open Classical
+open scoped Classical
-open nonZeroDivisors Polynomial
+open scoped nonZeroDivisors Polynomial
universe u v
-variable (K : Type u) [CommRing K] [IsDomain K]
-
--- porting note: removed `include hring`
+variable (K : Type u)
-/-- `RatFunc K` is `K(x)`, the field of rational functions over `K`.
+/-- `RatFunc K` is `K(X)`, the field of rational functions over `K`.
The inclusion of polynomials into `RatFunc` is `algebraMap K[X] (RatFunc K)`,
the maps between `RatFunc K` and another field of fractions of `K[X]`,
especially `FractionRing K[X]`, are given by `is_localization.algebra_equiv`.
-/
-structure RatFunc : Type u where
- ofFractionRing ::
- toFractionRing : FractionRing K[X]
+structure RatFunc [CommRing K] : Type u where ofFractionRing ::
+ toFractionRing : FractionRing K[X]
#align ratfunc RatFunc
#align ratfunc.of_fraction_ring RatFunc.ofFractionRing
#align ratfunc.to_fraction_ring RatFunc.toFractionRing
namespace RatFunc
+section CommRing
+
variable {K}
+variable [CommRing K]
+
section Rec
/-! ### Constructing `RatFunc`s and their induction principles -/
-
theorem ofFractionRing_injective : Function.Injective (ofFractionRing : _ → RatFunc K) :=
fun _ _ => ofFractionRing.inj
#align ratfunc.of_fraction_ring_injective RatFunc.ofFractionRing_injective
@@ -173,7 +172,18 @@ theorem liftOn_ofFractionRing_mk {P : Sort v} (n : K[X]) (d : K[X]⁰) (f : ∀
exact Localization.liftOn_mk _ _ _ _
#align ratfunc.lift_on_of_fraction_ring_mk RatFunc.liftOn_ofFractionRing_mk
--- porting note: removed `include hdomain`
+theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ _p _q : K[X], P}
+ (H : ∀ {p q a} (hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
+ (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
+ calc
+ f p q = f (q' * p) (q' * q) := (H hq hq').symm
+ _ = f (q * p') (q * q') := by rw [h, mul_comm q']
+ _ = f p' q' := H hq' hq
+#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
+
+section IsDomain
+
+variable [IsDomain K]
/-- `RatFunc.mk (p q : K[X])` is `p / q` as a rational function.
@@ -247,19 +257,6 @@ theorem liftOn_mk {P : Sort v} (p q : K[X]) (f : ∀ _p _q : K[X], P) (f0 : ∀
simp only [mk_eq_localization_mk _ hq, Localization.liftOn_mk, liftOn_ofFractionRing_mk]
#align ratfunc.lift_on_mk RatFunc.liftOn_mk
--- porting note: removed `omit hdomain`
-
-theorem lift_on_condition_of_lift_on'_condition {P : Sort v} {f : ∀ _p _q : K[X], P}
- (H : ∀ {p q a} (hq : q ≠ 0) (_ha : a ≠ 0), f (a * p) (a * q) = f p q) ⦃p q p' q' : K[X]⦄
- (hq : q ≠ 0) (hq' : q' ≠ 0) (h : q' * p = q * p') : f p q = f p' q' :=
- calc
- f p q = f (q' * p) (q' * q) := (H hq hq').symm
- _ = f (q * p') (q * q') := by rw [h, mul_comm q']
- _ = f p' q' := H hq' hq
-#align ratfunc.lift_on_condition_of_lift_on'_condition RatFunc.lift_on_condition_of_lift_on'_condition
-
--- porting note: removed `include hdomain`
-
/-- Non-dependent recursion principle for `RatFunc K`: if `f p q : P` for all `p q`,
such that `f (a * p) (a * q) = f p q`, then we can find a value of `P`
for all elements of `RatFunc K` by setting `lift_on' (p / q) f _ = f p q`.
@@ -295,32 +292,30 @@ protected theorem induction_on' {P : RatFunc K → Prop} :
f p q (mem_nonZeroDivisors_iff_ne_zero.mp q.2)
#align ratfunc.induction_on' RatFunc.induction_on'
+end IsDomain
+
end Rec
section Field
/-! ### Defining the field structure -/
--- porting note: replaced `omit hdomain` by working with a new type variable `R` instead
--- I believe this is because `irreducible_def` includes `hdomain` when it is not needed
-variable {R : Type _} [CommRing R]
-
/-- The zero rational function. -/
-protected irreducible_def zero : RatFunc R :=
+protected irreducible_def zero : RatFunc K :=
⟨0⟩
#align ratfunc.zero RatFunc.zero
-instance : Zero (RatFunc R) :=
+instance : Zero (RatFunc K) :=
⟨RatFunc.zero⟩
-- porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [zero_def]`
-- that does not close the goal
-theorem ofFractionRing_zero : (ofFractionRing 0 : RatFunc R) = 0 := by
+theorem ofFractionRing_zero : (ofFractionRing 0 : RatFunc K) = 0 := by
simp only [Zero.zero, OfNat.ofNat, RatFunc.zero]
#align ratfunc.of_fraction_ring_zero RatFunc.ofFractionRing_zero
/-- Addition of rational functions. -/
-protected irreducible_def add : RatFunc R → RatFunc R → RatFunc R
+protected irreducible_def add : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p + q⟩
#align ratfunc.add RatFunc.add
@@ -329,68 +324,70 @@ instance : Add (RatFunc K) :=
-- porting note: added `HAdd.hAdd`. using `simp?` produces `simp only [add_def]`
-- that does not close the goal
-theorem ofFractionRing_add (p q : FractionRing R[X]) :
+theorem ofFractionRing_add (p q : FractionRing K[X]) :
ofFractionRing (p + q) = ofFractionRing p + ofFractionRing q := by
simp only [HAdd.hAdd, Add.add, RatFunc.add]
#align ratfunc.of_fraction_ring_add RatFunc.ofFractionRing_add
/-- Subtraction of rational functions. -/
-protected irreducible_def sub : RatFunc R → RatFunc R → RatFunc R
+protected irreducible_def sub : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p - q⟩
#align ratfunc.sub RatFunc.sub
-instance : Sub (RatFunc R) :=
+instance : Sub (RatFunc K) :=
⟨RatFunc.sub⟩
-- porting note: added `HSub.hSub`. using `simp?` produces `simp only [sub_def]`
-- that does not close the goal
-theorem ofFractionRing_sub (p q : FractionRing R[X]) :
+theorem ofFractionRing_sub (p q : FractionRing K[X]) :
ofFractionRing (p - q) = ofFractionRing p - ofFractionRing q := by
simp only [Sub.sub, HSub.hSub, RatFunc.sub]
#align ratfunc.of_fraction_ring_sub RatFunc.ofFractionRing_sub
/-- Additive inverse of a rational function. -/
-protected irreducible_def neg : RatFunc R → RatFunc R
+protected irreducible_def neg : RatFunc K → RatFunc K
| ⟨p⟩ => ⟨-p⟩
#align ratfunc.neg RatFunc.neg
-instance : Neg (RatFunc R) :=
+instance : Neg (RatFunc K) :=
⟨RatFunc.neg⟩
-theorem ofFractionRing_neg (p : FractionRing R[X]) :
+theorem ofFractionRing_neg (p : FractionRing K[X]) :
ofFractionRing (-p) = -ofFractionRing p := by simp only [Neg.neg, RatFunc.neg]
#align ratfunc.of_fraction_ring_neg RatFunc.ofFractionRing_neg
/-- The multiplicative unit of rational functions. -/
-protected irreducible_def one : RatFunc R :=
+protected irreducible_def one : RatFunc K :=
⟨1⟩
#align ratfunc.one RatFunc.one
-instance : One (RatFunc R) :=
+instance : One (RatFunc K) :=
⟨RatFunc.one⟩
-- porting note: added `OfNat.ofNat`. using `simp?` produces `simp only [one_def]`
-- that does not close the goal
-theorem ofFractionRing_one : (ofFractionRing 1 : RatFunc R) = 1 := by
+theorem ofFractionRing_one : (ofFractionRing 1 : RatFunc K) = 1 := by
simp only [One.one, OfNat.ofNat, RatFunc.one]
#align ratfunc.of_fraction_ring_one RatFunc.ofFractionRing_one
/-- Multiplication of rational functions. -/
-protected irreducible_def mul : RatFunc R → RatFunc R → RatFunc R
+protected irreducible_def mul : RatFunc K → RatFunc K → RatFunc K
| ⟨p⟩, ⟨q⟩ => ⟨p * q⟩
#align ratfunc.mul RatFunc.mul
-instance : Mul (RatFunc R) :=
+instance : Mul (RatFunc K) :=
⟨RatFunc.mul⟩
-- porting note: added `HMul.hMul`. using `simp?` produces `simp only [mul_def]`
-- that does not close the goal
-theorem ofFractionRing_mul (p q : FractionRing R[X]) :
+theorem ofFractionRing_mul (p q : FractionRing K[X]) :
ofFractionRing (p * q) = ofFractionRing p * ofFractionRing q := by
simp only [Mul.mul, HMul.hMul, RatFunc.mul]
#align ratfunc.of_fraction_ring_mul RatFunc.ofFractionRing_mul
--- porting note: removed `include hdomain`
+section IsDomain
+
+variable [IsDomain K]
/-- Division of rational functions. -/
protected irreducible_def div : RatFunc K → RatFunc K → RatFunc K
@@ -429,9 +426,9 @@ theorem mul_inv_cancel : ∀ {p : RatFunc K} (_hp : p ≠ 0), p * p⁻¹ = 1
_root_.mul_inv_cancel this
#align ratfunc.mul_inv_cancel RatFunc.mul_inv_cancel
-section SMul
+end IsDomain
--- porting note: removed `omit hdomain`
+section SMul
variable {R : Type _}
@@ -467,13 +464,13 @@ theorem smul_eq_C_smul (x : RatFunc K) (r : K) : r • x = Polynomial.C r • x
set_option linter.uppercaseLean3 false in
#align ratfunc.smul_eq_C_smul RatFunc.smul_eq_C_smul
--- porting note: removed `include hdomain`
+section IsDomain
-variable [Monoid R] [DistribMulAction R K[X]]
+variable [IsDomain K]
-variable [htower : IsScalarTower R K[X] K[X]]
+variable [Monoid R] [DistribMulAction R K[X]]
--- porting note: removed `include htower`
+variable [IsScalarTower R K[X] K[X]]
theorem mk_smul (c : R) (p q : K[X]) : RatFunc.mk (c • p) q = c • RatFunc.mk p q := by
by_cases hq : q = 0
@@ -487,27 +484,28 @@ instance : IsScalarTower R K[X] (RatFunc K) := ⟨by
intros c p q
apply q.induction_on' fun q r _ => by rw [← mk_smul, smul_assoc, mk_smul, mk_smul]⟩
+end IsDomain
+
end SMul
--- porting note: replaced `omit hdomain` with using a new type variable
-variable (R : Type _) [CommRing R]
+variable (K)
-instance [Subsingleton R] : Subsingleton (RatFunc R) :=
+instance [Subsingleton K] : Subsingleton (RatFunc K) :=
toFractionRing_injective.subsingleton
-instance : Inhabited (RatFunc R) :=
+instance : Inhabited (RatFunc K) :=
⟨0⟩
-instance instNontrivial [Nontrivial R] : Nontrivial (RatFunc R) :=
+instance instNontrivial [Nontrivial K] : Nontrivial (RatFunc K) :=
ofFractionRing_injective.nontrivial
#align ratfunc.nontrivial RatFunc.instNontrivial
-/-- `RatFunc R` is isomorphic to the field of fractions of `R[X]`, as rings.
+/-- `RatFunc K` is isomorphic to the field of fractions of `K[X]`, as rings.
This is an auxiliary definition; `simp`-normal form is `IsLocalization.algEquiv`.
-/
@[simps apply]
-def toFractionRingRingEquiv : RatFunc R ≃+* FractionRing R[X] where
+def toFractionRingRingEquiv : RatFunc K ≃+* FractionRing K[X] where
toFun := toFractionRing
invFun := ofFractionRing
left_inv := fun ⟨_⟩ => rfl
@@ -516,6 +514,10 @@ def toFractionRingRingEquiv : RatFunc R ≃+* FractionRing R[X] where
map_mul' := fun ⟨_⟩ ⟨_⟩ => by simp [← ofFractionRing_mul]
#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquiv
+end Field
+
+section TacticInterlude
+
-- porting note: reimplemented the `frac_tac` and `smul_tac` as close to the originals as I could
/-- Solve equations for `RatFunc K` by working in `FractionRing K[X]`. -/
macro "frac_tac" : tactic => `(tactic| repeat (rintro (⟨⟩ : RatFunc _)) <;>
@@ -540,13 +542,17 @@ macro "smul_tac" : tactic => `(tactic|
Localization.mk_zero, Localization.add_mk_self, Localization.neg_mk,
ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_neg])
+end TacticInterlude
+
+variable (K)
+
-- Porting note: split the CommRing instance up into multiple defs because it was hard to see
-- if the big instance declaration made any progress.
-/-- `RatFunc R` is a commutative monoid.
+/-- `RatFunc K` is a commutative monoid.
This is an intermediate step on the way to the full instance `RatFunc.instCommRing`.
-/
-def instCommMonoid : CommMonoid (RatFunc R) where
+def instCommMonoid : CommMonoid (RatFunc K) where
mul := (· * ·)
mul_assoc := by frac_tac
mul_comm := by frac_tac
@@ -555,11 +561,11 @@ def instCommMonoid : CommMonoid (RatFunc R) where
mul_one := by frac_tac
npow := npowRec
-/-- `RatFunc R` is an additive commutative group.
+/-- `RatFunc K` is an additive commutative group.
This is an intermediate step on the way to the full instance `RatFunc.instCommRing`.
-/
-def instAddCommGroup : AddCommGroup (RatFunc R) where
+def instAddCommGroup : AddCommGroup (RatFunc K) where
add := (· + ·)
add_assoc := by frac_tac
-- porting note: `by frac_tac` didn't work:
@@ -579,8 +585,8 @@ def instAddCommGroup : AddCommGroup (RatFunc R) where
zsmul_succ' _ := by smul_tac
zsmul_neg' _ := by smul_tac
-instance instCommRing : CommRing (RatFunc R) :=
- { instCommMonoid R, instAddCommGroup R with
+instance instCommRing : CommRing (RatFunc K) :=
+ { instCommMonoid K, instAddCommGroup K with
add := (· + ·)
zero := 0
neg := Neg.neg
@@ -596,6 +602,8 @@ instance instCommRing : CommRing (RatFunc R) :=
npow := npowRec }
#align ratfunc.comm_ring RatFunc.instCommRing
+variable {K}
+
section LiftHom
variable {G₀ L R S F : Type _} [CommGroupWithZero G₀] [Field L] [CommRing R] [CommRing S]
@@ -783,7 +791,7 @@ end LiftHom
variable (K)
-instance : Field (RatFunc K) :=
+instance [IsDomain K] : Field (RatFunc K) :=
{ RatFunc.instCommRing K, RatFunc.instNontrivial K with
inv := Inv.inv
-- porting note: used to be `by frac_tac`
@@ -793,12 +801,13 @@ instance : Field (RatFunc K) :=
mul_inv_cancel := fun _ => mul_inv_cancel
zpow := zpowRec }
-end Field
-
section IsFractionRing
/-! ### `RatFunc` as field of fractions of `Polynomial` -/
+section IsDomain
+
+variable [IsDomain K]
instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K) where
toFun x := RatFunc.mk (algebraMap _ _ x) 1
@@ -815,6 +824,8 @@ instance (R : Type _) [CommSemiring R] [Algebra R K[X]] : Algebra R (RatFunc K)
ofFractionRing_mul, IsLocalization.mul_mk'_eq_mk'_of_mul, Algebra.smul_def]
commutes' c x := mul_comm _ _
+variable {K}
+
theorem mk_one (x : K[X]) : RatFunc.mk x 1 = algebraMap _ _ x :=
rfl
#align ratfunc.mk_one RatFunc.mk_one
@@ -1060,19 +1071,21 @@ theorem toFractionRingRingEquiv_symm_eq :
simp [toFractionRingRingEquiv, ofFractionRing_eq, AlgEquiv.coe_ringEquiv']
#align ratfunc.to_fraction_ring_ring_equiv_symm_eq RatFunc.toFractionRingRingEquiv_symm_eq
+end IsDomain
+
end IsFractionRing
+end CommRing
+
+variable {K}
+
section NumDenom
/-! ### Numerator and denominator -/
-
open GCDMonoid Polynomial
--- porting note: add a new variable `K`, instead of recycling the old one, since otherwise
--- typeclass inference gets confused about the three typeclass assumptions `Field`, `CommRing` and
--- `IsDomain` on the same type `K`.
-variable {K : Type u} [Field K]
+variable [Field K]
/-- `RatFunc.numDenom` are numerator and denominator of a rational function over a field,
normalized such that the denominator is monic. -/
@@ -1365,10 +1378,11 @@ end NumDenom
section Eval
-variable {K : Type u} [Field K]
-
/-! ### Polynomial structure: `C`, `X`, `eval` -/
+section Domain
+
+variable [CommRing K] [IsDomain K]
/-- `RatFunc.C a` is the constant rational function `a`. -/
def C : K →+* RatFunc K :=
@@ -1411,6 +1425,10 @@ theorem algebraMap_X : algebraMap K[X] (RatFunc K) Polynomial.X = X :=
set_option linter.uppercaseLean3 false in
#align ratfunc.algebra_map_X RatFunc.algebraMap_X
+end Domain
+
+section Field
+
variable [Field K]
@[simp]
@@ -1532,15 +1550,14 @@ theorem eval_mul {x y : RatFunc K} (hx : Polynomial.eval₂ f a (denom x) ≠ 0)
apply num_denom_mul
#align ratfunc.eval_mul RatFunc.eval_mul
+end Field
+
end Eval
section IntDegree
-variable {K : Type u}
open Polynomial
--- porting note: removed `omit hring`
-
variable [Field K]
/-- `int_degree x` is the degree of the rational function `x`, defined as the difference between
elab
to macro
in custom tactic (#4528)
This PR switches a custom tactic, used just in RatFunc, to a simple macro
.
Although this is quite straightforward, this is my first "official" metaprogramming in Lean4, so any kind of feedback is more than welcome!
@@ -517,22 +517,17 @@ def toFractionRingRingEquiv : RatFunc R ≃+* FractionRing R[X] where
#align ratfunc.to_fraction_ring_ring_equiv RatFunc.toFractionRingRingEquiv
-- porting note: reimplemented the `frac_tac` and `smul_tac` as close to the originals as I could
-open Lean Elab.Tactic in
/-- Solve equations for `RatFunc K` by working in `FractionRing K[X]`. -/
-elab (name := frac_tac) "frac_tac" : tactic => do
- evalTactic (← `(tactic| repeat (rintro (⟨⟩ : RatFunc _))
- <;>
+macro "frac_tac" : tactic => `(tactic| repeat (rintro (⟨⟩ : RatFunc _)) <;>
simp only [← ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_sub,
← ofFractionRing_neg, ← ofFractionRing_one, ← ofFractionRing_mul, ← ofFractionRing_div,
← ofFractionRing_inv,
add_assoc, zero_add, add_zero, mul_assoc, mul_zero, mul_one, mul_add, inv_zero,
add_comm, add_left_comm, mul_comm, mul_left_comm, sub_eq_add_neg, div_eq_mul_inv,
- add_mul, zero_mul, one_mul, neg_mul, mul_neg, add_right_neg]))
+ add_mul, zero_mul, one_mul, neg_mul, mul_neg, add_right_neg])
-open Lean Elab.Tactic in
/-- Solve equations for `RatFunc K` by applying `RatFunc.induction_on`. -/
-elab (name := smul_tac) "smul_tac" : tactic => do
- evalTactic (← `(tactic|
+macro "smul_tac" : tactic => `(tactic|
repeat
(first
| rintro (⟨⟩ : RatFunc _)
@@ -543,7 +538,7 @@ elab (name := smul_tac) "smul_tac" : tactic => do
Int.ofNat_eq_coe, Int.cast_zero, Int.cast_add, Int.cast_one,
Int.cast_negSucc, Int.cast_ofNat, Nat.cast_succ,
Localization.mk_zero, Localization.add_mk_self, Localization.neg_mk,
- ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_neg]))
+ ofFractionRing_zero, ← ofFractionRing_add, ← ofFractionRing_neg])
-- Porting note: split the CommRing instance up into multiple defs because it was hard to see
-- if the big instance declaration made any progress.
I am going to try to work on this for a bit, but it looks hard.
Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Vierkantor <vierkantor@vierkantor.com> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
The unported dependencies are